type token =
  | IDENT of (string * Cabs.cabsloc)
  | CST_CHAR of (int64 list * Cabs.cabsloc)
  | CST_WCHAR of (int64 list * Cabs.cabsloc)
  | CST_INT of (string * Cabs.cabsloc)
  | CST_FLOAT of (string * Cabs.cabsloc)
  | NAMED_TYPE of (string * Cabs.cabsloc)
  | CST_STRING of (int64 list * Cabs.cabsloc)
  | CST_WSTRING of (int64 list * Cabs.cabsloc)
  | EOF
  | CHAR of (Cabs.cabsloc)
  | INT of (Cabs.cabsloc)
  | DOUBLE of (Cabs.cabsloc)
  | FLOAT of (Cabs.cabsloc)
  | VOID of (Cabs.cabsloc)
  | INT64 of (Cabs.cabsloc)
  | INT32 of (Cabs.cabsloc)
  | ENUM of (Cabs.cabsloc)
  | STRUCT of (Cabs.cabsloc)
  | TYPEDEF of (Cabs.cabsloc)
  | UNION of (Cabs.cabsloc)
  | SIGNED of (Cabs.cabsloc)
  | UNSIGNED of (Cabs.cabsloc)
  | LONG of (Cabs.cabsloc)
  | SHORT of (Cabs.cabsloc)
  | VOLATILE of (Cabs.cabsloc)
  | EXTERN of (Cabs.cabsloc)
  | STATIC of (Cabs.cabsloc)
  | CONST of (Cabs.cabsloc)
  | RESTRICT of (Cabs.cabsloc)
  | AUTO of (Cabs.cabsloc)
  | REGISTER of (Cabs.cabsloc)
  | THREAD of (Cabs.cabsloc)
  | SIZEOF of (Cabs.cabsloc)
  | ALIGNOF of (Cabs.cabsloc)
  | EQ
  | PLUS_EQ
  | MINUS_EQ
  | STAR_EQ
  | SLASH_EQ
  | PERCENT_EQ
  | AND_EQ
  | PIPE_EQ
  | CIRC_EQ
  | INF_INF_EQ
  | SUP_SUP_EQ
  | ARROW
  | DOT
  | EQ_EQ
  | EXCLAM_EQ
  | INF
  | SUP
  | INF_EQ
  | SUP_EQ
  | PLUS of (Cabs.cabsloc)
  | MINUS of (Cabs.cabsloc)
  | STAR of (Cabs.cabsloc)
  | SLASH
  | PERCENT
  | TILDE of (Cabs.cabsloc)
  | AND of (Cabs.cabsloc)
  | PIPE
  | CIRC
  | EXCLAM of (Cabs.cabsloc)
  | AND_AND of (Cabs.cabsloc)
  | PIPE_PIPE
  | INF_INF
  | SUP_SUP
  | PLUS_PLUS of (Cabs.cabsloc)
  | MINUS_MINUS of (Cabs.cabsloc)
  | RPAREN
  | LPAREN of (Cabs.cabsloc)
  | RBRACE of (Cabs.cabsloc)
  | LBRACE of (Cabs.cabsloc)
  | LBRACKET
  | RBRACKET
  | COLON
  | SEMICOLON of (Cabs.cabsloc)
  | COMMA
  | ELLIPSIS
  | QUEST
  | BREAK of (Cabs.cabsloc)
  | CONTINUE of (Cabs.cabsloc)
  | GOTO of (Cabs.cabsloc)
  | RETURN of (Cabs.cabsloc)
  | SWITCH of (Cabs.cabsloc)
  | CASE of (Cabs.cabsloc)
  | DEFAULT of (Cabs.cabsloc)
  | WHILE of (Cabs.cabsloc)
  | DO of (Cabs.cabsloc)
  | FOR of (Cabs.cabsloc)
  | IF of (Cabs.cabsloc)
  | TRY of (Cabs.cabsloc)
  | EXCEPT of (Cabs.cabsloc)
  | FINALLY of (Cabs.cabsloc)
  | ELSE
  | ATTRIBUTE of (Cabs.cabsloc)
  | INLINE of (Cabs.cabsloc)
  | ASM of (Cabs.cabsloc)
  | TYPEOF of (Cabs.cabsloc)
  | FUNCTION__ of (Cabs.cabsloc)
  | PRETTY_FUNCTION__ of (Cabs.cabsloc)
  | LABEL__
  | BUILTIN_VA_ARG of (Cabs.cabsloc)
  | ATTRIBUTE_USED of (Cabs.cabsloc)
  | BUILTIN_VA_LIST
  | BLOCKATTRIBUTE
  | BUILTIN_TYPES_COMPAT of (Cabs.cabsloc)
  | BUILTIN_OFFSETOF of (Cabs.cabsloc)
  | DECLSPEC of (Cabs.cabsloc)
  | MSASM of (string * Cabs.cabsloc)
  | MSATTR of (string * Cabs.cabsloc)
  | PRAGMA_LINE of (string * Cabs.cabsloc)
  | PRAGMA of (Cabs.cabsloc)
  | PRAGMA_EOL
  | AT_TRANSFORM of (Cabs.cabsloc)
  | AT_TRANSFORMEXPR of (Cabs.cabsloc)
  | AT_SPECIFIER of (Cabs.cabsloc)
  | AT_EXPR of (Cabs.cabsloc)
  | AT_NAME

open Parsing;;
# 44 "src/frontc/cparser.mly"
open Cabs
module E = Errormsg

let parse_error msg : unit =       (* sm: c++-mode highlight hack: -> ' <- *)
  E.parse_error msg

let print = print_string

(* unit -> string option *)
(*
let getComments () =
  match !comments with
    [] -> None
  | _ -> 
      let r = Some(String.concat "\n" (List.rev !comments)) in
      comments := [];
      r
*)

let currentLoc () = 
  let l, f, c = E.getPosition () in
  { lineno   = l; 
    filename = f; 
    byteno   = c;}

let cabslu = {lineno = -10; 
	      filename = "cabs loc unknown"; 
	      byteno = -10;}

(* cabsloc -> cabsloc *)
(*
let handleLoc l =
  l.clcomment <- getComments();
  l
*)

(*
** Expression building
*)
let smooth_expression lst =
  match lst with
    [] -> NOTHING
  | [expr] -> expr
  | _ -> COMMA (lst)


let currentFunctionName = ref "<outside any function>"
    
let announceFunctionName ((n, decl, _, _):name) =
  !Lexerhack.add_identifier n;
  (* Start a context that includes the parameter names and the whole body. 
   * Will pop when we finish parsing the function body *)
  !Lexerhack.push_context ();
  (* Go through all the parameter names and mark them as identifiers *)
  let rec findProto = function
      PROTO (d, args, _) when isJUSTBASE d -> 
        List.iter (fun (_, (an, _, _, _)) -> !Lexerhack.add_identifier an) args

    | PROTO (d, _, _) -> findProto d
    | PARENTYPE (_, d, _) -> findProto d
    | PTR (_, d) -> findProto d
    | ARRAY (d, _, _) -> findProto d
    | _ -> parse_error "Cannot find the prototype in a function definition";
           raise Parsing.Parse_error 

  and isJUSTBASE = function
      JUSTBASE -> true
    | PARENTYPE (_, d, _) -> isJUSTBASE d
    | _ -> false
  in
  findProto decl;
  currentFunctionName := n



let applyPointer (ptspecs: attribute list list) (dt: decl_type)  
       : decl_type = 
  (* Outer specification first *)
  let rec loop = function
      [] -> dt
    | attrs :: rest -> PTR(attrs, loop rest)
  in
  loop ptspecs

let doDeclaration (loc: cabsloc) (specs: spec_elem list) (nl: init_name list) : definition = 
  if isTypedef specs then begin
    (* Tell the lexer about the new type names *)
    List.iter (fun ((n, _, _, _), _) -> !Lexerhack.add_type n) nl;
    TYPEDEF ((specs, List.map (fun (n, _) -> n) nl), loc)
  end else
    if nl = [] then
      ONLYTYPEDEF (specs, loc)
    else begin
      (* Tell the lexer about the new variable names *)
      List.iter (fun ((n, _, _, _), _) -> !Lexerhack.add_identifier n) nl;
      DECDEF ((specs, nl), loc)  
    end


let doFunctionDef (loc: cabsloc)
                  (lend: cabsloc)
                  (specs: spec_elem list) 
                  (n: name) 
                  (b: block) : definition = 
  let fname = (specs, n) in
  FUNDEF (fname, b, loc, lend)


let doOldParDecl (names: string list)
                 ((pardefs: name_group list), (isva: bool)) 
    : single_name list * bool =
  let findOneName n =
    (* Search in pardefs for the definition for this parameter *)
    let rec loopGroups = function
        [] -> ([SpecType Tint], (n, JUSTBASE, [], cabslu))
      | (specs, names) :: restgroups ->
          let rec loopNames = function
              [] -> loopGroups restgroups
            | ((n',_, _, _) as sn) :: _ when n' = n -> (specs, sn)
            | _ :: restnames -> loopNames restnames
          in
          loopNames names
    in
    loopGroups pardefs
  in
  let args = List.map findOneName names in
  (args, isva)

let checkConnective (s : string) : unit =
begin
  (* checking this means I could possibly have more connectives, with *)
  (* different meaning *)
  if (s <> "to") then (
    parse_error "transformer connective must be 'to'";
    raise Parsing.Parse_error
  )
  else ()
end

let int64_to_char value =
  if (compare value (Int64.of_int 255) > 0) || (compare value Int64.zero < 0) then
    begin
      let msg = Printf.sprintf "cparser:intlist_to_string: character 0x%Lx too big" value in
      parse_error msg;
      raise Parsing.Parse_error
    end
  else
    Char.chr (Int64.to_int value)

(* takes a not-nul-terminated list, and converts it to a string. *)
let rec intlist_to_string (str: int64 list):string =
  match str with
    [] -> ""  (* add nul-termination *)
  | value::rest ->
      let this_char = int64_to_char value in
      (String.make 1 this_char) ^ (intlist_to_string rest)

let fst3 (result, _, _) = result
let snd3 (_, result, _) = result
let trd3 (_, _, result) = result


(*
   transform:  __builtin_offsetof(type, member)
   into     :  (size_t) (&(type * ) 0)->member
 *)

let transformOffsetOf (speclist, dtype) member =
  let rec addPointer = function
    | JUSTBASE ->
	PTR([], JUSTBASE)
    | PARENTYPE (attrs1, dtype, attrs2) ->
	PARENTYPE (attrs1, addPointer dtype, attrs2)
    | ARRAY (dtype, attrs, expr) ->
	ARRAY (addPointer dtype, attrs, expr)
    | PTR (attrs, dtype) ->
	PTR (attrs, addPointer dtype)
    | PROTO (dtype, names, variadic) ->
	PROTO (addPointer dtype, names, variadic)
  in
  let nullType = (speclist, addPointer dtype) in
  let nullExpr = CONSTANT (CONST_INT "0") in
  let castExpr = CAST (nullType, SINGLE_INIT nullExpr) in

  let rec replaceBase = function
    | VARIABLE field ->
	MEMBEROFPTR (castExpr, field)
    | MEMBEROF (base, field) ->
	MEMBEROF (replaceBase base, field)
    | INDEX (base, index) ->
	INDEX (replaceBase base, index)
    | _ ->
	parse_error "malformed offset expression in __builtin_offsetof";
        raise Parsing.Parse_error 
  in
  let memberExpr = replaceBase member in
  let addrExpr = UNARY (ADDROF, memberExpr) in
  (* slight cheat: hard-coded assumption that size_t == unsigned int *)
  let sizeofType = [SpecType Tunsigned], JUSTBASE in
  let resultExpr = CAST (sizeofType, SINGLE_INIT addrExpr) in
  resultExpr

# 327 "src/frontc/cparser.ml"
let yytransl_const = [|
    0 (* EOF *);
  290 (* EQ *);
  291 (* PLUS_EQ *);
  292 (* MINUS_EQ *);
  293 (* STAR_EQ *);
  294 (* SLASH_EQ *);
  295 (* PERCENT_EQ *);
  296 (* AND_EQ *);
  297 (* PIPE_EQ *);
  298 (* CIRC_EQ *);
  299 (* INF_INF_EQ *);
  300 (* SUP_SUP_EQ *);
  301 (* ARROW *);
  302 (* DOT *);
  303 (* EQ_EQ *);
  304 (* EXCLAM_EQ *);
  305 (* INF *);
  306 (* SUP *);
  307 (* INF_EQ *);
  308 (* SUP_EQ *);
  312 (* SLASH *);
  313 (* PERCENT *);
  316 (* PIPE *);
  317 (* CIRC *);
  320 (* PIPE_PIPE *);
  321 (* INF_INF *);
  322 (* SUP_SUP *);
  325 (* RPAREN *);
  329 (* LBRACKET *);
  330 (* RBRACKET *);
  331 (* COLON *);
  333 (* COMMA *);
  334 (* ELLIPSIS *);
  335 (* QUEST *);
  350 (* ELSE *);
  357 (* LABEL__ *);
  360 (* BUILTIN_VA_LIST *);
  361 (* BLOCKATTRIBUTE *);
  369 (* PRAGMA_EOL *);
  374 (* AT_NAME *);
    0|]

let yytransl_block = [|
  257 (* IDENT *);
  258 (* CST_CHAR *);
  259 (* CST_WCHAR *);
  260 (* CST_INT *);
  261 (* CST_FLOAT *);
  262 (* NAMED_TYPE *);
  263 (* CST_STRING *);
  264 (* CST_WSTRING *);
  265 (* CHAR *);
  266 (* INT *);
  267 (* DOUBLE *);
  268 (* FLOAT *);
  269 (* VOID *);
  270 (* INT64 *);
  271 (* INT32 *);
  272 (* ENUM *);
  273 (* STRUCT *);
  274 (* TYPEDEF *);
  275 (* UNION *);
  276 (* SIGNED *);
  277 (* UNSIGNED *);
  278 (* LONG *);
  279 (* SHORT *);
  280 (* VOLATILE *);
  281 (* EXTERN *);
  282 (* STATIC *);
  283 (* CONST *);
  284 (* RESTRICT *);
  285 (* AUTO *);
  286 (* REGISTER *);
  287 (* THREAD *);
  288 (* SIZEOF *);
  289 (* ALIGNOF *);
  309 (* PLUS *);
  310 (* MINUS *);
  311 (* STAR *);
  314 (* TILDE *);
  315 (* AND *);
  318 (* EXCLAM *);
  319 (* AND_AND *);
  323 (* PLUS_PLUS *);
  324 (* MINUS_MINUS *);
  326 (* LPAREN *);
  327 (* RBRACE *);
  328 (* LBRACE *);
  332 (* SEMICOLON *);
  336 (* BREAK *);
  337 (* CONTINUE *);
  338 (* GOTO *);
  339 (* RETURN *);
  340 (* SWITCH *);
  341 (* CASE *);
  342 (* DEFAULT *);
  343 (* WHILE *);
  344 (* DO *);
  345 (* FOR *);
  346 (* IF *);
  347 (* TRY *);
  348 (* EXCEPT *);
  349 (* FINALLY *);
  351 (* ATTRIBUTE *);
  352 (* INLINE *);
  353 (* ASM *);
  354 (* TYPEOF *);
  355 (* FUNCTION__ *);
  356 (* PRETTY_FUNCTION__ *);
  358 (* BUILTIN_VA_ARG *);
  359 (* ATTRIBUTE_USED *);
  362 (* BUILTIN_TYPES_COMPAT *);
  363 (* BUILTIN_OFFSETOF *);
  364 (* DECLSPEC *);
  365 (* MSASM *);
  366 (* MSATTR *);
  367 (* PRAGMA_LINE *);
  368 (* PRAGMA *);
  370 (* AT_TRANSFORM *);
  371 (* AT_TRANSFORMEXPR *);
  372 (* AT_SPECIFIER *);
  373 (* AT_EXPR *);
    0|]

let yylhs = "\255\255\
\001\000\002\000\003\000\003\000\003\000\051\000\004\000\004\000\
\004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\
\004\000\055\000\055\000\055\000\056\000\056\000\057\000\057\000\
\057\000\057\000\057\000\058\000\058\000\058\000\058\000\058\000\
\058\000\058\000\058\000\058\000\058\000\058\000\059\000\059\000\
\059\000\061\000\061\000\061\000\061\000\061\000\061\000\061\000\
\061\000\061\000\061\000\061\000\061\000\061\000\061\000\062\000\
\062\000\063\000\063\000\063\000\063\000\064\000\064\000\064\000\
\065\000\065\000\065\000\066\000\066\000\066\000\066\000\066\000\
\067\000\067\000\067\000\068\000\068\000\069\000\069\000\070\000\
\070\000\071\000\071\000\072\000\072\000\073\000\073\000\074\000\
\074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\
\074\000\074\000\074\000\011\000\009\000\009\000\009\000\009\000\
\009\000\009\000\010\000\075\000\018\000\018\000\019\000\019\000\
\019\000\076\000\076\000\076\000\013\000\013\000\021\000\021\000\
\060\000\060\000\020\000\020\000\020\000\077\000\077\000\022\000\
\022\000\022\000\023\000\023\000\078\000\016\000\016\000\012\000\
\012\000\014\000\014\000\014\000\079\000\079\000\015\000\015\000\
\017\000\017\000\035\000\035\000\080\000\081\000\081\000\036\000\
\036\000\036\000\036\000\036\000\037\000\037\000\038\000\038\000\
\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\
\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\
\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\
\083\000\083\000\031\000\031\000\041\000\041\000\040\000\040\000\
\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\
\024\000\024\000\086\000\086\000\087\000\087\000\025\000\025\000\
\025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\
\025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\
\025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\
\025\000\025\000\025\000\026\000\026\000\026\000\026\000\026\000\
\026\000\044\000\044\000\043\000\043\000\043\000\030\000\030\000\
\030\000\029\000\029\000\042\000\045\000\045\000\045\000\045\000\
\045\000\090\000\091\000\091\000\092\000\092\000\092\000\028\000\
\028\000\028\000\028\000\027\000\093\000\093\000\039\000\039\000\
\054\000\054\000\054\000\094\000\094\000\094\000\049\000\050\000\
\050\000\034\000\034\000\048\000\048\000\046\000\046\000\046\000\
\046\000\047\000\047\000\032\000\033\000\033\000\033\000\033\000\
\033\000\052\000\052\000\052\000\005\000\005\000\006\000\006\000\
\006\000\088\000\088\000\088\000\088\000\095\000\095\000\095\000\
\095\000\097\000\097\000\089\000\089\000\053\000\053\000\053\000\
\099\000\099\000\099\000\099\000\099\000\099\000\099\000\099\000\
\099\000\099\000\099\000\100\000\100\000\100\000\100\000\100\000\
\100\000\101\000\101\000\101\000\101\000\101\000\101\000\101\000\
\101\000\101\000\101\000\101\000\102\000\103\000\103\000\103\000\
\103\000\104\000\104\000\104\000\105\000\105\000\105\000\106\000\
\106\000\106\000\106\000\106\000\107\000\107\000\107\000\108\000\
\108\000\109\000\109\000\110\000\110\000\111\000\111\000\112\000\
\112\000\113\000\113\000\098\000\114\000\114\000\114\000\115\000\
\115\000\082\000\082\000\096\000\096\000\007\000\007\000\007\000\
\084\000\084\000\085\000\085\000\116\000\116\000\118\000\118\000\
\119\000\119\000\117\000\117\000\120\000\120\000\121\000\121\000\
\122\000\122\000\000\000\000\000"

let yylen = "\002\000\
\002\000\001\000\000\000\002\000\002\000\000\000\001\000\001\000\
\003\000\005\000\005\000\001\000\006\000\004\000\008\000\008\000\
\003\000\001\000\001\000\004\000\000\000\001\000\001\000\001\000\
\001\000\003\000\004\000\001\000\002\000\004\000\006\000\006\000\
\006\000\003\000\003\000\002\000\002\000\006\000\001\000\003\000\
\002\000\001\000\002\000\002\000\002\000\004\000\002\000\004\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\001\000\
\004\000\001\000\003\000\003\000\003\000\001\000\003\000\003\000\
\001\000\003\000\003\000\001\000\003\000\003\000\003\000\003\000\
\001\000\003\000\003\000\001\000\003\000\001\000\003\000\001\000\
\003\000\001\000\003\000\001\000\003\000\001\000\005\000\001\000\
\003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
\003\000\003\000\003\000\001\000\001\000\001\000\001\000\001\000\
\001\000\001\000\001\000\001\000\001\000\002\000\001\000\002\000\
\002\000\001\000\001\000\001\000\001\000\003\000\001\000\003\000\
\000\000\001\000\003\000\002\000\001\000\001\000\000\000\003\000\
\004\000\005\000\000\000\001\000\002\000\000\000\001\000\000\000\
\001\000\001\000\003\000\003\000\000\000\001\000\003\000\003\000\
\003\000\003\000\005\000\003\000\001\000\000\000\002\000\000\000\
\002\000\002\000\002\000\002\000\000\000\004\000\001\000\003\000\
\001\000\002\000\001\000\003\000\005\000\003\000\003\000\005\000\
\008\000\003\000\004\000\006\000\002\000\002\000\003\000\002\000\
\002\000\003\000\004\000\007\000\001\000\005\000\004\000\003\000\
\002\000\001\000\003\000\002\000\001\000\003\000\001\000\003\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\004\000\000\000\001\000\000\000\001\000\001\000\001\000\
\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\
\002\000\003\000\005\000\004\000\006\000\005\000\002\000\005\000\
\004\000\006\000\005\000\002\000\006\000\005\000\007\000\006\000\
\001\000\004\000\004\000\000\000\003\000\002\000\004\000\002\000\
\003\000\001\000\003\000\001\000\004\000\002\000\001\000\003\000\
\003\000\001\000\003\000\003\000\001\000\004\000\005\000\005\000\
\004\000\001\000\000\000\002\000\000\000\002\000\003\000\002\000\
\002\000\001\000\003\000\002\000\005\000\003\000\001\000\003\000\
\000\000\004\000\004\000\001\000\003\000\001\000\003\000\000\000\
\001\000\002\000\001\000\003\000\001\000\004\000\003\000\004\000\
\004\000\001\000\000\000\002\000\002\000\002\000\004\000\005\000\
\003\000\001\000\001\000\001\000\000\000\002\000\000\000\002\000\
\005\000\004\000\002\000\001\000\001\000\001\000\001\000\001\000\
\001\000\004\000\002\000\001\000\002\000\003\000\004\000\001\000\
\001\000\001\000\003\000\002\000\001\000\001\000\001\000\003\000\
\003\000\003\000\001\000\001\000\003\000\002\000\003\000\003\000\
\004\000\001\000\002\000\004\000\002\000\004\000\002\000\002\000\
\002\000\002\000\002\000\002\000\001\000\001\000\003\000\003\000\
\003\000\001\000\003\000\003\000\001\000\003\000\003\000\001\000\
\003\000\003\000\003\000\003\000\001\000\003\000\003\000\001\000\
\003\000\001\000\003\000\001\000\003\000\001\000\003\000\001\000\
\003\000\001\000\005\000\001\000\001\000\003\000\003\000\000\000\
\001\000\003\000\003\000\003\000\003\000\000\000\002\000\002\000\
\001\000\002\000\000\000\003\000\000\000\001\000\001\000\003\000\
\005\000\005\000\000\000\003\000\000\000\003\000\000\000\002\000\
\001\000\003\000\002\000\002\000"

let yydefred = "\000\000\
\000\000\000\000\000\000\000\000\233\000\208\000\210\000\214\000\
\213\000\207\000\212\000\000\000\000\000\000\000\000\000\215\000\
\216\000\211\000\209\000\043\001\000\000\000\000\042\001\044\001\
\000\000\000\000\053\001\000\000\000\000\000\000\000\000\000\000\
\000\000\052\001\064\001\000\000\000\000\000\000\000\000\155\001\
\000\000\002\000\000\000\000\000\000\000\007\000\008\000\000\000\
\000\000\000\000\012\000\000\000\156\001\000\000\000\000\018\000\
\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\204\000\193\000\000\000\000\000\
\000\000\114\000\115\000\116\000\000\000\000\000\109\000\194\000\
\195\000\196\000\197\000\005\000\000\000\199\000\000\000\000\000\
\000\000\051\001\000\000\000\000\066\001\075\001\071\001\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\070\001\000\000\076\001\000\000\093\001\094\001\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\124\001\000\000\000\000\000\000\001\000\004\000\000\000\
\188\000\038\001\000\000\000\000\000\000\025\001\000\000\206\000\
\198\000\006\000\149\000\036\001\000\000\000\000\200\000\201\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\247\000\000\000\000\000\059\001\000\000\000\000\000\000\000\000\
\061\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\009\000\
\110\000\000\000\000\000\000\000\023\000\103\000\104\000\101\000\
\102\000\111\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\024\000\105\000\000\000\025\000\000\000\000\000\
\000\000\028\000\000\000\056\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\088\000\
\100\000\000\000\000\000\000\000\068\001\000\000\000\000\078\001\
\000\000\000\000\083\001\000\000\085\001\087\001\088\001\089\001\
\092\001\090\001\091\001\000\000\000\000\000\000\062\001\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\057\001\055\001\056\001\000\000\054\001\000\000\000\000\187\000\
\000\000\000\000\000\000\253\000\012\001\000\000\000\000\000\000\
\017\000\000\000\014\000\000\000\000\000\008\001\009\001\000\000\
\000\000\000\000\004\001\039\001\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\238\000\000\000\000\000\
\000\000\000\000\000\000\000\000\220\000\240\000\000\000\000\000\
\000\000\225\000\000\000\000\000\000\000\000\000\000\000\000\000\
\129\001\000\000\050\001\000\000\000\000\045\000\000\000\047\000\
\049\000\050\000\051\000\054\000\052\000\053\000\055\000\000\000\
\043\000\044\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\234\000\113\000\112\000\026\001\000\000\
\235\000\000\000\000\000\036\000\037\000\000\000\000\000\029\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\131\001\000\000\
\000\000\130\001\077\001\072\001\073\001\000\000\000\000\067\001\
\074\001\063\001\079\001\080\001\000\000\095\001\096\001\097\001\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\202\000\023\001\046\001\190\000\000\000\117\000\
\192\000\000\000\000\000\000\000\000\000\252\000\000\000\000\000\
\148\000\000\000\000\000\000\000\000\000\016\001\000\000\000\000\
\011\001\000\000\000\000\000\000\000\000\006\001\000\000\251\000\
\249\000\248\000\230\000\058\001\020\000\000\000\000\000\000\000\
\241\000\246\000\237\000\000\000\000\000\000\000\219\000\222\000\
\000\000\224\000\227\000\000\000\010\000\133\001\132\001\011\000\
\000\000\000\000\000\000\144\000\000\000\000\000\143\000\000\000\
\026\000\000\000\000\000\000\000\000\000\000\000\035\000\034\000\
\000\000\135\000\000\000\000\000\000\000\089\000\090\000\091\000\
\092\000\093\000\094\000\095\000\096\000\097\000\098\000\099\000\
\059\000\060\000\061\000\058\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\137\000\000\000\127\001\126\001\
\000\000\000\000\081\001\000\000\000\000\000\000\000\000\000\000\
\000\000\125\000\000\000\122\000\000\000\000\000\000\000\000\000\
\000\000\014\001\000\000\000\000\000\000\000\000\048\001\000\000\
\000\000\151\000\000\000\000\000\161\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\181\000\000\000\000\000\000\000\163\000\000\000\
\000\000\022\001\000\000\000\000\013\000\000\000\000\000\002\001\
\028\001\000\000\000\000\007\001\229\000\232\000\000\000\000\000\
\243\000\239\000\221\000\226\000\000\000\000\000\000\000\140\000\
\139\000\000\000\057\000\000\000\000\000\000\000\027\000\000\000\
\030\000\146\000\145\000\000\000\123\001\000\000\000\000\000\000\
\000\000\000\000\126\000\000\000\133\000\118\000\124\000\254\000\
\000\000\000\000\142\000\000\000\000\000\001\001\160\000\158\000\
\000\000\000\000\176\000\177\000\000\000\000\000\174\000\000\000\
\000\000\000\000\000\000\173\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\154\000\162\000\153\000\
\147\000\156\000\000\000\000\000\031\001\000\000\000\000\000\000\
\231\000\245\000\000\000\000\000\000\000\039\000\000\000\087\000\
\000\000\000\000\132\000\128\000\000\000\000\000\120\000\123\000\
\013\001\000\001\255\000\000\000\184\000\170\000\178\000\000\000\
\175\000\000\000\166\000\000\000\000\000\167\000\000\000\000\000\
\000\000\186\000\000\000\000\000\000\000\000\000\135\001\136\001\
\000\000\021\001\018\001\019\001\030\001\033\001\032\001\038\000\
\031\000\032\000\000\000\033\000\041\000\015\000\016\000\129\000\
\000\000\049\001\179\000\171\000\000\000\000\000\185\000\000\000\
\000\000\000\000\183\000\108\000\000\000\000\000\040\000\130\000\
\000\000\168\000\000\000\165\000\182\000\138\001\000\000\000\000\
\172\000\000\000\000\000\000\000\000\000\143\001\000\000\000\000\
\000\000\000\000\000\000\140\001\000\000\000\000\180\000\169\000\
\150\001\000\000\144\001\000\000\000\000\148\001\000\000\000\000\
\000\000\152\001\146\001\145\001\000\000\154\001"

let yydgoto = "\003\000\
\040\000\041\000\042\000\043\000\020\001\190\001\157\002\076\002\
\203\000\204\000\092\001\028\002\042\002\077\002\206\000\251\001\
\112\001\078\000\207\000\043\002\044\002\045\002\180\002\164\000\
\045\000\165\000\130\000\150\000\153\000\154\000\046\000\047\000\
\048\000\209\000\079\002\080\002\032\001\195\001\147\000\131\000\
\132\000\057\001\058\001\059\001\203\001\204\001\205\001\166\002\
\134\000\060\001\049\000\050\000\166\000\200\001\028\001\047\001\
\210\000\211\000\175\002\047\002\212\000\213\000\214\000\215\000\
\216\000\217\000\218\000\219\000\220\000\221\000\222\000\223\000\
\224\000\225\000\237\002\079\000\124\002\048\002\132\002\141\000\
\197\001\090\000\203\002\238\002\248\002\080\000\137\000\052\000\
\063\000\191\001\151\000\043\001\029\001\084\002\022\001\179\000\
\064\000\227\000\108\000\109\000\110\000\111\000\112\000\113\000\
\114\000\115\000\116\000\117\000\118\000\119\000\120\000\121\000\
\122\000\228\000\074\001\252\002\004\003\253\002\254\002\255\002\
\014\003\018\003"

let yysindex = "\201\001\
\070\012\070\012\000\000\005\255\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\075\000\109\000\136\014\191\000\000\000\
\000\000\000\000\000\000\000\000\064\013\136\014\000\000\000\000\
\136\014\136\014\000\000\070\012\035\255\136\014\127\255\182\255\
\189\255\000\000\000\000\251\006\074\255\116\255\210\255\000\000\
\085\001\000\000\070\012\018\000\159\014\000\000\000\000\037\255\
\111\000\136\014\000\000\136\014\000\000\098\000\229\013\000\000\
\000\000\117\000\090\000\189\255\097\000\073\000\026\255\240\255\
\137\009\108\000\066\255\136\014\000\000\000\000\137\009\137\000\
\204\255\000\000\000\000\000\000\000\014\082\255\000\000\000\000\
\000\000\000\000\000\000\000\000\150\000\000\000\082\255\028\009\
\022\015\000\000\062\255\153\000\000\000\000\000\000\000\229\010\
\044\011\251\006\251\006\251\006\251\006\251\006\251\006\251\006\
\193\000\000\000\234\254\000\000\041\000\000\000\000\000\218\000\
\205\000\169\000\036\001\254\000\224\000\243\000\250\000\001\001\
\009\255\000\000\101\012\063\011\068\001\000\000\000\000\248\001\
\000\000\000\000\012\001\255\000\065\001\000\000\102\255\000\000\
\000\000\000\000\000\000\000\000\009\001\044\001\000\000\000\000\
\040\001\047\001\060\001\229\013\057\001\062\001\075\001\116\001\
\000\000\083\001\150\000\000\000\161\001\117\000\117\000\104\001\
\000\000\092\001\137\009\100\000\117\001\137\009\137\009\137\009\
\119\001\122\001\137\009\137\009\152\001\070\012\018\000\000\000\
\000\000\082\015\164\001\168\001\000\000\000\000\000\000\000\000\
\000\000\000\000\134\011\205\011\063\011\063\011\063\011\063\011\
\063\011\063\011\240\001\224\011\224\011\168\005\173\001\179\001\
\185\001\190\001\000\000\000\000\198\001\000\000\220\255\057\001\
\199\001\000\000\096\001\000\000\199\002\079\001\024\001\242\000\
\056\001\055\001\210\001\209\001\211\001\214\001\024\000\000\000\
\000\000\122\255\196\001\205\001\000\000\218\014\018\002\000\000\
\020\002\168\005\000\000\168\005\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\212\001\022\002\176\001\000\000\142\255\
\142\255\251\006\251\006\251\006\251\006\251\006\251\006\251\006\
\251\006\251\006\251\006\251\006\251\006\251\006\251\006\251\006\
\251\006\251\006\251\006\251\006\251\006\215\001\219\001\224\001\
\000\000\000\000\000\000\057\001\000\000\248\001\057\001\000\000\
\013\010\248\001\043\001\000\000\000\000\223\001\026\002\191\001\
\000\000\098\000\000\000\136\014\229\001\000\000\000\000\000\000\
\061\000\091\013\000\000\000\000\063\011\114\001\231\001\234\001\
\239\001\083\001\083\001\117\000\137\009\000\000\063\011\137\009\
\001\002\227\001\002\002\102\255\000\000\000\000\009\002\010\002\
\137\009\000\000\017\002\019\002\137\009\023\002\065\001\233\255\
\000\000\028\002\000\000\013\002\168\005\000\000\168\005\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\168\005\
\000\000\000\000\051\000\014\002\029\002\035\002\036\002\063\011\
\136\014\136\014\109\002\000\000\000\000\000\000\000\000\042\002\
\000\000\142\255\142\255\000\000\000\000\191\007\006\008\000\000\
\063\011\063\011\063\011\063\011\063\011\063\011\063\011\063\011\
\063\011\063\011\063\011\063\011\063\011\063\011\063\011\063\011\
\063\011\063\011\063\011\063\011\063\011\063\011\063\011\063\011\
\063\011\063\011\063\011\063\011\063\011\191\007\000\000\142\015\
\142\015\000\000\000\000\000\000\000\000\046\002\053\002\000\000\
\000\000\000\000\000\000\000\000\049\002\000\000\000\000\000\000\
\218\000\218\000\205\000\205\000\169\000\169\000\169\000\169\000\
\036\001\036\001\254\000\224\000\243\000\250\000\001\001\050\002\
\123\002\125\002\000\000\000\000\000\000\000\000\218\006\000\000\
\000\000\057\001\098\000\248\001\057\002\000\000\229\013\130\001\
\000\000\052\002\054\002\189\255\050\005\000\000\076\255\056\002\
\000\000\035\001\153\001\119\002\060\002\000\000\062\001\000\000\
\000\000\000\000\000\000\000\000\000\000\066\002\067\002\083\001\
\000\000\000\000\000\000\063\011\010\255\137\009\000\000\000\000\
\070\002\000\000\000\000\073\002\000\000\000\000\000\000\000\000\
\079\002\080\002\082\002\000\000\191\007\191\007\000\000\085\010\
\000\000\076\002\081\002\086\002\088\002\035\001\000\000\000\000\
\093\002\000\000\090\002\055\000\113\002\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\079\001\079\001\024\001\024\001\
\242\000\242\000\242\000\242\000\056\001\056\001\055\001\210\001\
\209\001\211\001\214\001\126\002\000\000\111\002\000\000\000\000\
\133\002\133\002\000\000\251\006\139\002\141\002\000\000\142\255\
\063\011\000\000\138\002\000\000\182\002\146\002\152\002\013\010\
\157\002\000\000\175\002\025\008\082\255\176\002\000\000\026\002\
\009\001\000\000\093\002\171\002\000\000\172\002\173\002\085\255\
\038\007\177\002\063\011\179\002\177\002\101\006\185\002\177\002\
\037\255\167\000\000\000\050\005\181\002\050\005\000\000\187\002\
\050\005\000\000\183\002\186\002\000\000\190\002\057\001\000\000\
\000\000\229\013\191\007\000\000\000\000\000\000\193\002\248\001\
\000\000\000\000\000\000\000\000\133\002\133\002\133\002\000\000\
\000\000\218\006\000\000\136\014\136\014\251\002\000\000\057\001\
\000\000\000\000\000\000\063\011\000\000\070\012\063\011\029\000\
\104\000\218\006\000\000\013\010\000\000\000\000\000\000\000\000\
\136\014\145\000\000\000\194\002\192\002\000\000\000\000\000\000\
\189\000\101\006\000\000\000\000\198\002\191\007\000\000\205\002\
\096\008\101\006\212\000\000\000\101\006\195\002\224\002\030\006\
\101\006\039\001\167\000\167\000\245\002\000\000\000\000\000\000\
\000\000\000\000\076\255\028\014\000\000\200\002\254\002\246\002\
\000\000\000\000\004\003\255\002\000\003\000\000\252\255\000\000\
\006\003\007\003\000\000\000\000\029\000\063\011\000\000\000\000\
\000\000\000\000\000\000\248\001\000\000\000\000\000\000\005\003\
\000\000\051\000\000\000\101\006\063\011\000\000\101\006\177\002\
\008\003\000\000\191\007\244\002\177\002\037\255\000\000\000\000\
\081\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\097\003\000\000\000\000\000\000\000\000\000\000\
\028\003\000\000\000\000\000\000\032\003\035\003\000\000\036\003\
\101\006\037\255\000\000\000\000\081\003\038\003\000\000\000\000\
\101\006\000\000\191\007\000\000\000\000\000\000\054\003\060\003\
\000\000\063\003\130\003\058\003\057\003\000\000\082\255\065\003\
\101\006\071\003\054\003\000\000\054\003\069\003\000\000\000\000\
\000\000\074\003\000\000\167\008\081\003\000\000\077\003\085\003\
\073\003\000\000\000\000\000\000\081\003\000\000"

let yyrindex = "\000\000\
\013\000\023\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\060\255\000\000\000\000\
\000\000\000\000\000\000\000\000\058\255\060\255\000\000\000\000\
\060\255\060\255\000\000\009\000\000\000\060\255\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\009\000\151\000\049\001\000\000\000\000\000\000\
\000\000\060\255\000\000\060\255\000\000\121\013\086\003\000\000\
\000\000\000\000\000\000\000\000\000\000\189\001\000\000\028\000\
\096\003\044\002\000\000\060\255\000\000\000\000\096\003\155\002\
\000\000\000\000\000\000\000\000\000\000\212\012\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\253\002\008\022\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\143\002\000\000\000\000\109\022\
\212\022\057\023\169\006\040\003\039\009\032\002\061\003\170\005\
\203\000\000\000\160\003\000\000\000\000\000\000\000\000\149\255\
\000\000\000\000\092\003\000\000\224\255\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\208\003\000\000\000\000\000\000\
\100\003\092\255\000\000\000\000\096\255\101\003\000\000\071\000\
\000\000\102\003\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\096\003\151\000\000\000\096\003\096\003\096\003\
\010\003\000\000\096\003\096\003\000\000\029\255\151\000\000\000\
\000\000\103\003\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\209\015\003\001\
\000\000\000\000\040\016\000\000\027\017\092\017\031\018\226\018\
\030\020\164\020\242\020\064\021\142\021\133\007\008\002\000\000\
\000\000\000\000\117\003\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\001\000\000\000\089\003\151\000\000\000\
\000\000\153\255\084\255\000\000\000\000\000\000\000\000\070\004\
\000\000\000\000\000\000\211\255\000\000\000\000\000\000\089\000\
\098\003\000\000\000\000\000\000\000\000\116\003\000\000\000\000\
\000\000\102\003\102\003\000\000\096\003\000\000\000\000\096\003\
\070\001\114\003\000\000\000\000\000\000\000\000\000\000\000\000\
\096\003\000\000\000\000\000\000\096\003\000\000\102\001\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\121\003\139\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\098\003\
\000\000\000\000\000\000\000\000\000\000\124\003\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\119\003\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\144\022\177\022\245\022\024\023\092\023\125\023\160\023\193\023\
\148\009\095\012\186\008\113\009\164\008\139\005\000\006\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\126\003\000\000\
\000\000\151\000\121\013\115\007\000\000\000\000\086\003\170\001\
\000\000\122\003\000\000\000\000\128\003\000\000\151\000\196\255\
\000\000\230\000\096\000\156\000\000\000\000\000\101\003\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\102\003\
\000\000\000\000\000\000\000\000\151\000\096\003\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\239\255\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\157\017\222\017\096\018\161\018\
\035\019\100\019\165\019\230\019\086\020\142\020\220\020\042\021\
\120\021\198\021\109\008\000\000\000\000\000\000\000\000\000\000\
\041\022\076\022\000\000\000\000\000\000\000\000\244\023\000\000\
\000\000\000\000\129\003\000\000\157\010\000\000\000\000\000\000\
\000\000\000\000\000\000\127\003\000\000\000\000\000\000\000\000\
\208\003\000\000\190\000\034\024\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\132\003\000\000\128\003\000\000\128\003\000\000\000\000\
\128\003\000\000\147\003\000\000\000\000\000\000\098\255\000\000\
\000\000\086\003\127\003\000\000\000\000\000\000\000\000\109\001\
\000\000\000\000\000\000\000\000\127\016\214\016\000\000\000\000\
\000\000\126\003\000\000\000\000\000\000\000\000\000\000\225\000\
\000\000\000\000\000\000\000\000\000\000\029\255\000\000\197\009\
\000\000\126\003\000\000\000\000\000\000\000\000\000\000\000\000\
\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\133\003\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\034\024\000\000\166\003\
\000\000\000\000\132\003\132\003\000\000\000\000\000\000\000\000\
\000\000\000\000\151\000\211\255\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\197\009\000\000\000\000\000\000\
\000\000\000\000\000\000\059\002\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\166\003\188\004\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\115\000\134\003\000\000\000\000\
\000\000\000\000\136\003\000\000\000\000\000\000\099\000\000\000\
\000\000\000\000\000\000\174\003\126\000\000\000\000\000\000\000\
\000\000\000\000\099\000\000\000\107\255\000\000\000\000\000\000\
\000\000\175\003\000\000\000\000\000\000\000\000\000\000\000\000\
\176\003\000\000\000\000\000\000\000\000\000\000"

let yygindex = "\000\000\
\000\000\244\004\231\255\124\004\068\255\056\003\066\000\211\254\
\000\000\235\255\170\255\154\253\241\254\205\255\226\253\000\000\
\074\002\000\000\000\000\000\000\000\000\187\253\069\002\019\000\
\000\000\228\000\000\000\138\255\205\003\150\255\186\255\000\000\
\000\000\115\255\209\255\236\255\196\002\201\002\248\254\000\000\
\229\003\226\255\000\000\033\003\120\004\000\000\000\000\246\255\
\118\255\234\255\130\255\000\000\003\000\244\253\043\000\240\254\
\000\000\000\000\000\000\239\254\181\000\114\000\028\001\067\001\
\041\001\093\001\123\003\118\003\120\003\125\003\131\003\000\000\
\142\002\062\003\164\254\202\255\000\000\000\000\178\002\000\000\
\000\000\213\255\000\000\027\002\000\000\111\001\000\000\136\255\
\249\000\002\000\084\254\066\003\000\000\105\002\254\254\119\004\
\000\000\007\000\000\000\000\000\000\000\022\000\233\001\235\001\
\249\001\250\001\013\004\016\004\017\004\015\004\018\004\000\000\
\003\255\106\255\000\000\041\002\000\000\000\000\024\002\000\000\
\000\000\025\002"

let yytablesize = 6513
let yytable = "\077\000\
\140\000\205\000\084\000\051\000\051\000\055\000\176\000\021\001\
\003\000\185\001\040\001\030\001\003\000\133\000\106\000\176\001\
\156\000\127\000\054\002\044\000\044\000\135\000\003\000\177\000\
\192\001\198\001\056\000\073\001\006\000\037\001\051\000\057\000\
\069\000\214\001\215\001\146\002\138\000\015\001\149\002\069\000\
\069\000\153\002\107\000\069\000\069\000\051\000\044\000\232\000\
\069\000\201\002\179\002\050\001\051\001\246\000\062\000\066\000\
\094\001\072\000\203\000\203\000\203\000\044\000\229\000\136\000\
\128\000\180\000\056\000\106\000\069\000\040\001\069\000\057\000\
\012\001\149\000\054\000\082\002\106\000\106\000\106\000\106\000\
\106\000\106\000\106\000\047\001\055\001\141\002\069\000\013\001\
\074\000\181\001\247\000\041\001\150\001\186\001\151\001\175\000\
\024\001\159\000\024\001\003\000\232\002\024\001\056\000\024\001\
\085\000\160\000\208\000\057\000\139\000\169\000\244\000\179\002\
\203\000\149\001\203\000\173\000\185\002\047\001\038\001\238\000\
\239\000\240\000\241\000\242\000\243\000\051\000\041\001\203\000\
\203\000\203\000\128\000\230\000\203\000\203\000\203\000\203\000\
\203\000\168\000\039\001\142\002\250\002\044\000\056\000\061\000\
\071\001\123\000\093\001\057\000\070\001\045\001\095\001\212\002\
\102\001\045\001\045\001\047\001\106\000\021\001\045\001\047\001\
\047\001\021\001\021\001\041\001\010\001\024\001\149\000\024\001\
\024\001\230\002\024\001\026\001\010\001\167\002\234\002\203\000\
\051\000\203\000\051\002\207\001\075\000\076\000\093\001\061\000\
\093\001\104\001\095\001\124\000\095\001\192\001\143\001\233\001\
\044\000\234\001\184\001\040\001\087\000\103\001\144\001\095\002\
\192\001\216\001\235\001\045\001\056\000\149\001\149\001\045\001\
\106\000\057\000\017\001\243\001\244\001\024\001\208\001\024\001\
\208\000\045\001\045\001\061\000\030\001\045\001\045\001\037\001\
\218\001\045\001\074\000\101\001\106\000\106\000\106\000\106\000\
\106\000\106\000\106\000\106\000\106\000\106\000\106\000\106\000\
\106\000\106\000\106\000\106\000\106\000\106\000\106\000\106\000\
\071\001\031\002\032\002\088\000\208\000\180\001\208\000\052\002\
\157\001\024\001\089\000\061\000\017\001\067\000\024\001\073\000\
\006\000\242\001\045\001\040\001\006\000\087\002\045\001\089\002\
\158\001\159\001\160\001\172\000\235\000\237\000\006\000\125\000\
\151\002\093\001\017\001\093\001\060\001\095\001\017\001\095\001\
\127\002\060\001\155\001\156\001\093\001\045\001\117\002\037\001\
\095\001\219\002\170\000\191\000\191\000\230\001\081\001\082\001\
\083\001\084\001\085\001\086\001\045\001\144\001\199\001\045\001\
\161\000\112\002\250\001\253\001\149\000\056\000\075\000\076\000\
\220\002\061\000\057\000\021\001\111\001\024\001\024\001\021\001\
\128\000\024\001\040\002\056\000\017\001\024\001\059\000\003\000\
\057\000\021\001\021\001\021\001\126\000\248\000\249\000\141\001\
\171\002\025\001\029\002\060\000\190\002\129\000\025\001\208\000\
\184\001\208\000\145\000\060\001\195\002\041\002\142\001\198\002\
\183\002\149\001\208\000\204\002\184\002\056\000\142\000\078\001\
\080\001\250\000\057\000\208\000\208\000\152\000\024\001\236\001\
\089\001\090\001\106\000\106\000\070\000\021\001\078\002\237\001\
\114\002\047\001\202\001\237\001\081\000\096\002\054\001\082\000\
\083\000\062\001\063\001\064\001\086\000\250\000\067\001\068\001\
\158\000\060\001\058\000\250\000\247\001\248\001\228\002\024\001\
\058\002\190\002\128\000\049\002\024\001\029\001\025\001\155\000\
\143\000\025\001\144\000\170\002\047\001\029\001\157\000\141\001\
\083\002\059\000\047\001\047\001\047\001\141\001\055\001\056\001\
\017\003\181\002\061\000\167\000\065\000\182\002\060\000\137\001\
\017\003\104\002\105\002\244\002\137\002\137\001\155\002\056\000\
\061\000\156\002\142\001\249\002\057\000\149\001\149\001\081\002\
\142\001\001\000\002\000\059\000\040\001\090\002\025\001\138\000\
\171\000\149\000\121\002\008\003\138\000\138\000\138\000\175\000\
\060\000\184\001\186\002\178\000\024\001\237\001\172\002\173\002\
\045\001\046\002\061\000\233\000\034\001\040\001\045\001\021\001\
\045\001\000\001\001\001\045\001\147\002\009\002\010\002\011\002\
\012\002\012\002\012\002\012\002\012\002\012\002\012\002\012\002\
\012\002\012\002\012\002\012\002\012\002\012\002\012\002\226\002\
\131\002\254\000\255\000\193\001\006\000\078\002\071\000\078\002\
\189\002\006\000\078\002\245\000\024\001\144\002\106\000\122\001\
\251\000\252\000\253\000\184\001\122\001\122\001\122\001\122\001\
\217\001\154\002\008\001\219\001\045\001\059\000\196\002\133\002\
\178\002\197\002\086\002\184\001\225\001\184\001\024\001\131\002\
\228\001\024\001\060\000\045\001\006\001\007\001\045\001\009\001\
\205\000\205\000\129\001\130\001\061\000\010\001\205\000\158\002\
\049\002\160\002\017\001\122\001\162\002\018\001\019\001\011\001\
\041\001\027\000\017\001\021\001\016\001\018\001\019\001\027\001\
\024\001\027\000\024\001\024\001\127\001\128\001\081\002\027\001\
\081\002\202\002\120\002\081\002\002\001\003\001\004\001\005\001\
\023\001\104\001\192\002\045\001\177\002\093\001\175\000\225\002\
\175\000\107\002\025\001\175\000\029\002\135\001\136\001\205\000\
\131\001\132\001\133\001\134\001\149\000\031\001\229\002\128\000\
\187\001\209\001\152\000\188\001\034\001\205\000\205\000\033\001\
\051\000\205\000\035\001\205\000\205\000\205\000\208\000\208\000\
\036\001\029\000\205\002\206\002\083\002\124\001\125\001\126\001\
\044\000\029\000\042\001\189\001\106\001\107\001\033\000\044\001\
\034\000\244\000\244\000\199\001\046\002\045\001\033\000\029\002\
\034\000\017\001\013\002\014\002\018\001\019\001\235\002\046\001\
\027\000\049\001\108\001\109\001\046\002\110\001\205\000\053\001\
\111\001\047\001\175\000\017\002\018\002\019\002\020\002\052\001\
\017\001\191\000\191\000\018\001\019\001\016\003\199\001\027\000\
\045\001\045\001\245\002\061\001\228\000\228\000\065\001\029\002\
\066\001\098\002\228\000\015\002\016\002\228\000\228\000\228\000\
\228\000\228\000\228\000\047\001\228\000\228\000\228\000\228\000\
\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\
\228\000\228\000\228\000\228\000\207\002\208\002\088\002\069\001\
\029\000\188\001\189\001\021\002\022\002\012\002\161\001\162\001\
\075\001\006\003\163\001\164\001\076\001\033\000\047\001\034\000\
\087\001\047\001\096\001\228\000\047\001\047\001\047\001\029\000\
\097\001\189\001\165\001\166\001\167\001\168\001\098\001\169\001\
\170\001\228\000\228\000\099\001\033\000\228\000\034\000\228\000\
\228\000\228\000\100\001\105\001\137\001\138\001\139\001\017\001\
\145\001\146\001\018\001\019\001\140\001\148\001\027\000\149\001\
\152\001\153\001\194\001\228\000\228\000\177\001\228\000\086\000\
\154\001\178\001\086\000\086\000\179\001\193\001\086\000\196\001\
\228\000\201\001\228\000\217\000\217\000\211\001\212\001\221\001\
\228\000\217\000\228\000\213\001\217\000\217\000\217\000\217\000\
\217\000\217\000\045\001\217\000\217\000\217\000\217\000\217\000\
\217\000\217\000\217\000\217\000\217\000\217\000\217\000\217\000\
\217\000\217\000\217\000\220\001\086\000\222\001\086\000\223\001\
\224\001\086\000\086\000\086\000\086\000\086\000\029\000\226\001\
\232\001\227\001\238\001\116\001\045\001\229\001\116\001\116\001\
\231\001\239\001\217\000\033\000\116\001\034\000\086\000\240\001\
\241\001\116\001\116\001\116\001\116\001\245\001\116\001\246\001\
\217\000\217\000\033\002\086\000\217\000\086\000\217\000\217\000\
\217\000\034\002\035\002\037\002\036\002\038\002\053\002\045\001\
\056\002\057\002\045\001\085\002\091\002\045\001\045\001\045\001\
\093\002\094\002\217\000\217\000\099\002\217\000\017\001\100\002\
\116\001\018\001\019\001\101\002\102\002\027\000\103\002\217\000\
\108\002\217\000\223\000\223\000\111\002\109\002\113\002\217\000\
\223\000\217\000\110\002\223\000\223\000\223\000\223\000\223\000\
\223\000\237\001\223\000\223\000\223\000\223\000\223\000\223\000\
\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\
\223\000\223\000\115\002\144\001\088\002\082\001\082\001\082\001\
\082\001\082\001\082\001\082\001\082\001\082\001\082\001\082\001\
\116\002\082\001\082\001\082\001\106\002\082\001\082\001\082\001\
\082\001\223\000\118\002\082\001\119\002\029\000\122\002\123\002\
\082\001\082\001\082\001\082\001\125\002\082\001\126\002\223\000\
\223\000\128\002\033\000\223\000\034\000\223\000\223\000\223\000\
\113\001\114\001\115\001\116\001\117\001\118\001\119\001\120\001\
\121\001\122\001\123\001\129\002\134\002\138\002\145\002\139\002\
\140\002\223\000\223\000\174\002\223\000\148\002\152\002\082\001\
\159\002\161\002\165\002\163\002\188\002\164\002\223\000\169\002\
\223\000\218\000\218\000\187\002\213\002\199\002\223\000\218\000\
\223\000\191\002\218\000\218\000\218\000\218\000\218\000\218\000\
\193\002\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
\218\000\065\001\065\001\065\001\065\001\065\001\065\001\065\001\
\065\001\065\001\065\001\065\001\065\001\065\001\200\002\065\001\
\065\001\065\001\209\002\065\001\065\001\065\001\065\001\215\002\
\218\000\065\001\214\002\217\002\218\002\065\001\065\001\065\001\
\065\001\065\001\216\002\065\001\222\002\223\002\218\000\218\000\
\227\002\233\002\218\000\231\002\218\000\218\000\218\000\236\002\
\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\
\045\001\239\002\112\001\112\001\112\001\240\002\112\001\112\001\
\218\000\218\000\241\002\218\000\112\001\065\001\242\002\243\002\
\247\002\112\001\112\001\112\001\112\001\218\000\112\001\218\000\
\045\001\045\001\045\001\118\001\118\001\218\000\251\002\218\000\
\000\003\118\001\002\003\001\003\003\003\005\003\118\001\118\001\
\118\001\118\001\012\003\118\001\007\003\045\001\045\001\045\001\
\009\003\019\003\045\001\045\001\013\003\021\003\045\001\045\001\
\112\001\020\003\003\001\045\001\045\001\045\001\045\001\006\000\
\045\001\045\001\045\001\045\001\045\001\045\001\236\000\189\000\
\015\001\005\001\035\001\128\001\021\000\118\001\254\001\255\001\
\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\
\008\002\125\001\022\000\045\001\045\001\242\000\045\001\006\000\
\134\000\136\000\045\001\045\001\121\000\159\000\152\000\119\000\
\141\000\134\001\139\001\155\000\136\000\045\001\045\001\157\000\
\157\000\157\000\157\000\157\000\157\000\157\000\157\000\157\000\
\157\000\157\000\157\000\157\000\157\000\157\000\020\001\157\000\
\157\000\157\000\157\000\157\000\157\000\157\000\157\000\157\000\
\157\000\157\000\157\000\157\000\157\000\157\000\157\000\157\000\
\157\000\136\000\147\001\151\001\153\001\053\000\014\001\055\002\
\221\002\224\002\210\001\182\001\136\002\097\002\027\001\024\002\
\135\002\176\002\025\002\023\002\157\000\157\000\157\000\246\002\
\026\002\157\000\157\000\210\002\168\002\157\000\157\000\027\002\
\092\002\048\001\157\000\157\000\171\001\157\000\157\000\157\000\
\172\001\174\001\173\001\157\000\011\003\175\001\000\000\157\000\
\157\000\157\000\157\000\157\000\157\000\157\000\157\000\157\000\
\157\000\157\000\157\000\010\003\000\000\022\003\157\000\157\000\
\157\000\157\000\157\000\157\000\000\000\157\000\000\000\000\000\
\157\000\157\000\157\000\157\000\157\000\157\000\157\000\157\000\
\000\000\000\000\000\000\157\000\157\000\150\000\150\000\150\000\
\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\
\150\000\150\000\150\000\150\000\000\000\150\000\150\000\150\000\
\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\
\150\000\150\000\150\000\150\000\150\000\150\000\150\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\150\000\150\000\150\000\000\000\000\000\150\000\
\150\000\000\000\000\000\150\000\150\000\000\000\000\000\000\000\
\150\000\150\000\000\000\150\000\150\000\150\000\000\000\000\000\
\000\000\150\000\000\000\000\000\000\000\150\000\150\000\150\000\
\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\
\150\000\000\000\000\000\000\000\150\000\150\000\150\000\150\000\
\150\000\150\000\000\000\150\000\000\000\000\000\000\000\150\000\
\150\000\150\000\150\000\150\000\150\000\150\000\000\000\000\000\
\000\000\150\000\150\000\164\000\164\000\164\000\164\000\164\000\
\164\000\164\000\164\000\164\000\164\000\164\000\164\000\164\000\
\164\000\164\000\000\000\164\000\164\000\164\000\164\000\164\000\
\164\000\164\000\164\000\164\000\164\000\164\000\164\000\164\000\
\164\000\164\000\164\000\164\000\164\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\164\000\164\000\164\000\000\000\000\000\164\000\164\000\000\000\
\000\000\164\000\164\000\000\000\000\000\000\000\164\000\164\000\
\000\000\164\000\164\000\164\000\000\000\000\000\000\000\164\000\
\000\000\000\000\000\000\164\000\164\000\164\000\164\000\164\000\
\164\000\164\000\164\000\164\000\164\000\164\000\164\000\000\000\
\000\000\000\000\164\000\164\000\164\000\164\000\164\000\164\000\
\000\000\164\000\000\000\000\000\000\000\164\000\164\000\164\000\
\164\000\164\000\164\000\164\000\000\000\000\000\000\000\164\000\
\164\000\059\002\060\002\182\000\183\000\184\000\185\000\005\000\
\074\000\186\000\006\000\007\000\008\000\009\000\010\000\011\000\
\000\000\012\000\013\000\014\000\015\000\016\000\017\000\018\000\
\019\000\020\000\068\000\022\000\023\000\024\000\025\000\026\000\
\027\000\187\000\188\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\189\000\190\000\
\191\000\000\000\000\000\192\000\193\000\000\000\000\000\194\000\
\195\000\000\000\000\000\000\000\196\000\197\000\000\000\198\000\
\000\000\139\000\000\000\000\000\000\000\061\002\000\000\000\000\
\000\000\062\002\063\002\064\002\065\002\066\002\067\002\068\002\
\069\002\070\002\071\002\072\002\073\002\000\000\000\000\000\000\
\029\000\030\000\074\002\032\000\075\000\076\000\000\000\199\000\
\000\000\000\000\000\000\200\000\201\000\033\000\075\002\034\000\
\035\000\036\000\000\000\000\000\000\000\039\000\202\000\091\001\
\181\000\182\000\183\000\184\000\185\000\005\000\074\000\186\000\
\006\000\007\000\008\000\009\000\010\000\011\000\000\000\012\000\
\013\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\
\068\000\022\000\023\000\024\000\025\000\026\000\027\000\187\000\
\188\000\119\001\119\001\000\000\000\000\000\000\000\000\119\001\
\000\000\000\000\000\000\000\000\119\001\119\001\119\001\119\001\
\000\000\119\001\000\000\000\000\189\000\190\000\191\000\000\000\
\000\000\192\000\193\000\000\000\000\000\194\000\195\000\000\000\
\000\000\120\001\196\000\197\000\000\000\198\000\120\001\139\000\
\000\000\000\000\000\000\120\001\120\001\120\001\120\001\000\000\
\120\001\000\000\000\000\119\001\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\029\000\030\000\
\000\000\032\000\075\000\076\000\000\000\199\000\000\000\000\000\
\000\000\200\000\201\000\033\000\000\000\034\000\000\000\000\000\
\000\000\000\000\120\001\039\000\202\000\249\001\181\000\182\000\
\183\000\184\000\185\000\005\000\074\000\186\000\006\000\007\000\
\008\000\009\000\010\000\011\000\000\000\012\000\013\000\014\000\
\015\000\016\000\017\000\018\000\019\000\020\000\068\000\022\000\
\023\000\024\000\025\000\026\000\027\000\187\000\188\000\121\001\
\000\000\000\000\000\000\000\000\121\001\000\000\000\000\000\000\
\000\000\121\001\121\001\121\001\121\001\000\000\121\001\000\000\
\000\000\000\000\189\000\190\000\191\000\000\000\000\000\192\000\
\193\000\000\000\000\000\194\000\195\000\000\000\000\000\000\000\
\196\000\197\000\000\000\198\000\059\002\150\002\182\000\183\000\
\184\000\185\000\000\000\074\000\186\000\000\000\000\000\000\000\
\121\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\029\000\030\000\000\000\032\000\
\075\000\076\000\000\000\199\000\187\000\188\000\000\000\200\000\
\201\000\033\000\000\000\034\000\000\000\000\000\000\000\000\000\
\000\000\039\000\202\000\000\000\000\000\000\000\000\000\000\000\
\000\000\189\000\190\000\191\000\000\000\000\000\192\000\193\000\
\000\000\000\000\194\000\195\000\000\000\000\000\000\000\196\000\
\197\000\000\000\198\000\000\000\139\000\000\000\000\000\000\000\
\061\002\000\000\000\000\000\000\062\002\063\002\064\002\065\002\
\066\002\067\002\068\002\069\002\070\002\071\002\072\002\073\002\
\000\000\000\000\000\000\000\000\000\000\074\002\000\000\075\000\
\076\000\000\000\199\000\000\000\000\000\000\000\200\000\201\000\
\000\000\075\002\000\000\000\000\000\000\000\000\000\000\109\001\
\109\001\202\000\039\002\182\000\183\000\184\000\185\000\057\000\
\074\000\186\000\000\000\109\001\109\001\109\001\000\000\109\001\
\109\001\000\000\000\000\000\000\000\000\109\001\000\000\000\000\
\000\000\000\000\109\001\109\001\109\001\109\001\000\000\109\001\
\000\000\187\000\188\000\091\000\000\000\000\000\092\000\000\000\
\093\000\074\000\000\000\000\000\000\000\000\000\000\000\040\002\
\000\000\000\000\000\000\000\000\000\000\000\000\189\000\190\000\
\191\000\000\000\094\000\192\000\193\000\095\000\000\000\194\000\
\195\000\109\001\096\000\097\000\196\000\197\000\000\000\198\000\
\000\000\183\001\041\002\000\000\000\000\249\001\181\000\182\000\
\183\000\184\000\185\000\000\000\074\000\186\000\000\000\098\000\
\099\000\100\000\000\000\000\000\101\000\102\000\000\000\000\000\
\103\000\000\000\000\000\000\000\075\000\076\000\000\000\199\000\
\104\000\000\000\000\000\200\000\201\000\187\000\188\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\202\000\061\000\
\105\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\189\000\190\000\191\000\075\000\076\000\192\000\
\193\000\000\000\000\000\194\000\195\000\000\000\000\000\000\000\
\196\000\197\000\000\000\198\000\000\000\000\000\000\000\000\000\
\000\000\143\002\045\001\045\001\045\001\045\001\045\001\045\001\
\000\000\045\001\045\001\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\075\000\076\000\000\000\199\000\000\000\000\000\000\000\200\000\
\201\000\000\000\045\001\045\001\000\000\000\000\000\000\000\000\
\000\000\000\000\202\000\000\000\084\000\000\000\000\000\084\000\
\084\000\000\000\000\000\084\000\000\000\000\000\000\000\045\001\
\045\001\045\001\000\000\000\000\045\001\045\001\000\000\000\000\
\045\001\045\001\000\000\000\000\000\000\045\001\045\001\000\000\
\045\001\000\000\000\000\000\000\045\001\000\000\249\001\181\000\
\182\000\183\000\184\000\185\000\084\000\074\000\186\000\000\000\
\000\000\084\000\000\000\084\000\000\000\000\000\084\000\084\000\
\084\000\084\000\084\000\084\000\000\000\045\001\045\001\000\000\
\045\001\000\000\000\000\000\000\045\001\045\001\187\000\188\000\
\000\000\000\000\000\000\084\000\000\000\000\000\000\000\045\001\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\084\000\000\000\084\000\189\000\190\000\191\000\000\000\000\000\
\192\000\193\000\000\000\000\000\194\000\195\000\000\000\000\000\
\000\000\196\000\197\000\000\000\198\000\252\001\181\000\182\000\
\183\000\184\000\185\000\000\000\074\000\186\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\130\002\181\000\182\000\183\000\184\000\185\000\000\000\074\000\
\186\000\075\000\076\000\000\000\199\000\187\000\188\000\000\000\
\200\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\202\000\000\000\000\000\000\000\000\000\
\187\000\188\000\189\000\190\000\191\000\000\000\000\000\192\000\
\193\000\000\000\000\000\194\000\195\000\000\000\000\000\000\000\
\196\000\197\000\000\000\198\000\000\000\189\000\190\000\191\000\
\000\000\000\000\192\000\193\000\000\000\000\000\194\000\195\000\
\000\000\000\000\000\000\196\000\197\000\000\000\198\000\194\002\
\181\000\182\000\183\000\184\000\185\000\000\000\074\000\186\000\
\075\000\076\000\000\000\199\000\000\000\000\000\000\000\200\000\
\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\202\000\075\000\076\000\000\000\199\000\187\000\
\188\000\000\000\200\000\201\000\085\000\000\000\000\000\085\000\
\085\000\000\000\000\000\085\000\000\000\202\000\000\000\000\000\
\000\000\000\000\000\000\000\000\189\000\190\000\191\000\000\000\
\000\000\192\000\193\000\000\000\000\000\194\000\195\000\000\000\
\000\000\000\000\196\000\197\000\000\000\198\000\015\003\181\000\
\182\000\183\000\184\000\185\000\085\000\074\000\186\000\000\000\
\000\000\085\000\000\000\085\000\000\000\000\000\085\000\085\000\
\085\000\085\000\085\000\085\000\000\000\000\000\000\000\000\000\
\000\000\000\000\075\000\076\000\000\000\199\000\187\000\188\000\
\000\000\200\000\201\000\085\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\202\000\000\000\000\000\000\000\
\085\000\000\000\085\000\189\000\190\000\191\000\000\000\117\001\
\192\000\193\000\117\001\117\001\194\000\195\000\000\000\000\000\
\117\001\196\000\197\000\000\000\198\000\117\001\117\001\117\001\
\117\001\000\000\117\001\000\000\113\001\113\001\113\001\000\000\
\113\001\113\001\000\000\000\000\000\000\000\000\113\001\000\000\
\000\000\000\000\000\000\113\001\113\001\113\001\113\001\000\000\
\113\001\075\000\076\000\000\000\199\000\000\000\000\000\000\000\
\200\000\201\000\000\000\000\000\117\001\000\000\000\000\000\000\
\000\000\000\000\000\000\202\000\181\000\182\000\183\000\184\000\
\185\000\005\000\074\000\186\000\006\000\007\000\008\000\009\000\
\010\000\011\000\113\001\012\000\013\000\014\000\015\000\016\000\
\017\000\018\000\019\000\020\000\068\000\022\000\023\000\024\000\
\025\000\026\000\027\000\187\000\188\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\189\000\190\000\191\000\000\000\000\000\192\000\193\000\000\000\
\000\000\194\000\195\000\000\000\000\000\000\000\196\000\197\000\
\000\000\198\000\114\001\114\001\000\000\114\001\114\001\000\000\
\000\000\000\000\000\000\114\001\000\000\000\000\000\000\000\000\
\114\001\114\001\114\001\114\001\000\000\114\001\000\000\000\000\
\000\000\000\000\029\000\030\000\000\000\032\000\075\000\076\000\
\000\000\199\000\000\000\000\000\000\000\200\000\201\000\033\000\
\162\000\034\000\000\000\000\000\000\000\000\000\005\000\039\000\
\202\000\006\000\007\000\008\000\009\000\010\000\011\000\114\001\
\012\000\013\000\014\000\015\000\016\000\017\000\018\000\019\000\
\020\000\068\000\022\000\023\000\024\000\025\000\026\000\027\000\
\000\000\000\000\000\000\000\000\115\001\115\001\000\000\115\001\
\115\001\000\000\000\000\000\000\000\000\115\001\000\000\000\000\
\000\000\000\000\115\001\115\001\115\001\115\001\000\000\115\001\
\000\000\000\000\110\001\110\001\000\000\131\000\131\000\131\000\
\131\000\131\000\000\000\131\000\131\000\000\000\110\001\110\001\
\110\001\000\000\110\001\110\001\163\000\000\000\000\000\000\000\
\110\001\000\000\000\000\000\000\000\000\110\001\110\001\110\001\
\110\001\115\001\110\001\000\000\131\000\131\000\131\000\029\000\
\030\000\000\000\032\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\033\000\000\000\034\000\035\000\
\036\000\131\000\131\000\131\000\039\000\000\000\131\000\131\000\
\000\000\000\000\131\000\131\000\110\001\000\000\000\000\131\000\
\131\000\000\000\131\000\000\000\131\000\181\000\182\000\183\000\
\184\000\185\000\000\000\074\000\186\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\131\000\
\131\000\000\000\131\000\000\000\187\000\188\000\131\000\131\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\131\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\189\000\190\000\191\000\000\000\000\000\192\000\193\000\
\000\000\000\000\194\000\195\000\000\000\000\000\000\000\196\000\
\197\000\000\000\198\000\000\000\183\001\181\000\182\000\183\000\
\184\000\185\000\000\000\074\000\186\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\075\000\
\076\000\000\000\199\000\000\000\187\000\188\000\200\000\201\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\202\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\189\000\190\000\191\000\000\000\000\000\192\000\193\000\
\000\000\000\000\194\000\195\000\000\000\000\000\000\000\196\000\
\197\000\000\000\198\000\000\000\106\002\127\000\127\000\127\000\
\127\000\127\000\000\000\127\000\127\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\075\000\
\076\000\000\000\199\000\000\000\127\000\127\000\200\000\201\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\202\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\127\000\127\000\127\000\000\000\000\000\127\000\127\000\
\000\000\000\000\127\000\127\000\000\000\000\000\000\000\127\000\
\127\000\000\000\127\000\000\000\127\000\181\000\182\000\183\000\
\184\000\185\000\000\000\074\000\186\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\000\
\127\000\000\000\127\000\000\000\187\000\188\000\127\000\127\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\127\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\189\000\190\000\191\000\000\000\000\000\192\000\193\000\
\000\000\000\000\194\000\195\000\000\000\000\000\000\000\196\000\
\197\000\000\000\234\000\000\000\181\000\182\000\183\000\184\000\
\185\000\000\000\074\000\186\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\
\182\000\183\000\184\000\185\000\000\000\074\000\186\000\075\000\
\076\000\000\000\199\000\187\000\188\000\000\000\200\000\201\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\202\000\000\000\000\000\000\000\000\000\187\000\188\000\
\189\000\190\000\191\000\000\000\000\000\192\000\193\000\000\000\
\000\000\194\000\195\000\000\000\000\000\000\000\196\000\197\000\
\000\000\236\000\000\000\189\000\190\000\191\000\000\000\000\000\
\192\000\193\000\000\000\000\000\194\000\195\000\000\000\000\000\
\000\000\196\000\197\000\000\000\198\000\000\000\181\000\182\000\
\183\000\184\000\185\000\000\000\074\000\186\000\075\000\076\000\
\000\000\199\000\000\000\000\000\000\000\200\000\201\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\202\000\075\000\076\000\000\000\199\000\187\000\188\000\000\000\
\200\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\202\000\000\000\000\000\000\000\000\000\
\000\000\000\000\189\000\190\000\191\000\000\000\000\000\192\000\
\193\000\000\000\000\000\194\000\195\000\000\000\000\000\000\000\
\196\000\197\000\000\000\077\001\000\000\181\000\182\000\183\000\
\184\000\185\000\000\000\074\000\186\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\181\000\182\000\183\000\184\000\185\000\000\000\074\000\186\000\
\075\000\076\000\000\000\199\000\187\000\188\000\000\000\200\000\
\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\202\000\000\000\000\000\000\000\000\000\187\000\
\188\000\189\000\190\000\191\000\000\000\000\000\192\000\193\000\
\000\000\000\000\194\000\195\000\000\000\000\000\000\000\196\000\
\197\000\000\000\079\001\000\000\189\000\190\000\191\000\000\000\
\000\000\192\000\193\000\000\000\000\000\194\000\195\000\000\000\
\000\000\000\000\196\000\197\000\000\000\088\001\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\075\000\
\076\000\000\000\199\000\000\000\000\000\000\000\200\000\201\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\202\000\075\000\076\000\000\000\199\000\004\000\000\000\
\000\000\200\000\201\000\005\000\000\000\000\000\006\000\007\000\
\008\000\009\000\010\000\011\000\202\000\012\000\013\000\014\000\
\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\
\023\000\024\000\025\000\026\000\027\000\004\000\000\000\000\000\
\000\000\000\000\005\000\000\000\000\000\006\000\007\000\008\000\
\009\000\010\000\011\000\000\000\012\000\013\000\014\000\015\000\
\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\
\024\000\025\000\026\000\027\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\111\001\111\001\000\000\
\000\000\028\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\111\001\111\001\111\001\000\000\111\001\111\001\000\000\
\000\000\000\000\000\000\111\001\029\000\030\000\031\000\032\000\
\111\001\111\001\111\001\111\001\000\000\111\001\000\000\000\000\
\000\000\033\000\000\000\034\000\035\000\036\000\000\000\037\000\
\038\000\039\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\029\000\030\000\031\000\032\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\111\001\
\033\000\000\000\034\000\035\000\036\000\000\000\037\000\038\000\
\039\000\107\000\000\000\000\000\107\000\107\000\107\000\107\000\
\107\000\107\000\000\000\107\000\107\000\107\000\107\000\107\000\
\107\000\107\000\107\000\107\000\107\000\107\000\107\000\107\000\
\107\000\107\000\107\000\000\000\000\000\107\000\107\000\107\000\
\107\000\107\000\107\000\107\000\107\000\107\000\107\000\107\000\
\107\000\107\000\107\000\107\000\107\000\107\000\107\000\107\000\
\107\000\107\000\107\000\107\000\107\000\000\000\107\000\107\000\
\107\000\000\000\107\000\107\000\107\000\107\000\107\000\107\000\
\107\000\107\000\107\000\107\000\107\000\107\000\107\000\107\000\
\107\000\107\000\107\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\107\000\107\000\000\000\107\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\107\000\
\000\000\107\000\000\000\000\000\107\000\005\000\074\000\107\000\
\006\000\007\000\008\000\009\000\010\000\011\000\000\000\012\000\
\013\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\
\068\000\022\000\023\000\024\000\025\000\026\000\027\000\000\000\
\005\000\000\000\000\000\006\000\007\000\008\000\009\000\010\000\
\011\000\000\000\012\000\013\000\014\000\015\000\016\000\017\000\
\018\000\019\000\020\000\068\000\022\000\023\000\024\000\025\000\
\026\000\027\000\000\000\000\000\000\000\000\000\002\001\000\000\
\000\000\002\001\002\001\002\001\002\001\002\001\002\001\000\000\
\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\
\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\
\000\000\000\000\000\000\000\000\000\000\000\000\029\000\030\000\
\148\000\032\000\075\000\076\000\000\000\000\000\000\000\000\000\
\206\001\000\000\000\000\033\000\000\000\034\000\000\000\000\000\
\000\000\000\000\000\000\039\000\000\000\000\000\000\000\000\000\
\000\000\029\000\030\000\000\000\032\000\002\001\002\001\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\033\000\000\000\
\034\000\000\000\000\000\000\000\000\000\000\000\039\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\
\002\001\000\000\002\001\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\002\001\000\000\002\001\000\000\
\000\000\000\000\005\000\000\000\002\001\006\000\007\000\008\000\
\009\000\010\000\011\000\000\000\012\000\013\000\014\000\015\000\
\016\000\017\000\018\000\019\000\020\000\068\000\022\000\023\000\
\024\000\025\000\026\000\027\000\000\000\005\000\000\000\000\000\
\006\000\007\000\008\000\009\000\010\000\011\000\000\000\012\000\
\013\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\
\068\000\022\000\023\000\024\000\025\000\026\000\027\000\000\000\
\000\000\005\000\000\000\000\000\006\000\007\000\008\000\009\000\
\010\000\011\000\148\000\012\000\013\000\014\000\015\000\016\000\
\017\000\018\000\019\000\020\000\068\000\022\000\023\000\024\000\
\025\000\026\000\027\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\029\000\030\000\000\000\032\000\174\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\033\000\000\000\034\000\000\000\000\000\000\000\000\000\000\000\
\039\000\000\000\000\000\000\000\000\000\000\000\029\000\030\000\
\000\000\032\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\211\002\000\000\033\000\000\000\034\000\000\000\000\000\
\000\000\000\000\000\000\039\000\000\000\000\000\000\000\000\000\
\000\000\000\000\029\000\030\000\000\000\032\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\033\000\
\000\000\034\000\000\000\000\000\000\000\005\000\000\000\039\000\
\006\000\007\000\008\000\009\000\010\000\011\000\000\000\012\000\
\013\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\
\068\000\022\000\023\000\024\000\025\000\026\000\027\000\006\000\
\007\000\008\000\009\000\010\000\011\000\000\000\012\000\013\000\
\014\000\015\000\016\000\017\000\018\000\019\000\020\000\068\000\
\022\000\023\000\024\000\025\000\026\000\027\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\226\000\091\000\000\000\000\000\092\000\000\000\093\000\
\074\000\000\000\000\000\000\000\000\000\000\000\029\000\030\000\
\000\000\032\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\094\000\000\000\033\000\095\000\034\000\000\000\000\000\
\000\000\096\000\097\000\039\000\000\000\029\000\030\000\000\000\
\032\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\033\000\000\000\034\000\000\000\098\000\099\000\
\100\000\000\000\039\000\101\000\102\000\226\000\091\000\103\000\
\000\000\092\000\000\000\093\000\074\000\000\000\147\001\104\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\094\000\000\000\105\000\
\095\000\000\000\000\000\000\000\000\000\096\000\097\000\000\000\
\000\000\000\000\000\000\000\000\075\000\076\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\098\000\099\000\100\000\000\000\000\000\101\000\
\102\000\072\001\091\000\103\000\000\000\092\000\000\000\093\000\
\074\000\000\000\000\000\104\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\094\000\000\000\105\000\095\000\000\000\000\000\000\000\
\000\000\096\000\097\000\000\000\000\000\000\000\000\000\000\000\
\075\000\076\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\098\000\099\000\
\100\000\000\000\000\000\101\000\102\000\030\002\091\000\103\000\
\000\000\092\000\000\000\093\000\074\000\000\000\000\000\104\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\094\000\000\000\105\000\
\095\000\000\000\000\000\000\000\000\000\096\000\097\000\000\000\
\000\000\000\000\000\000\000\000\075\000\076\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\098\000\099\000\100\000\000\000\000\000\101\000\
\102\000\000\000\000\000\103\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\104\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\105\000\000\000\000\000\000\000\000\000\
\106\000\000\000\000\000\106\000\106\000\000\000\000\000\106\000\
\075\000\076\000\106\000\106\000\106\000\106\000\106\000\106\000\
\106\000\106\000\106\000\106\000\106\000\106\000\106\000\106\000\
\106\000\106\000\106\000\106\000\106\000\106\000\106\000\106\000\
\106\000\106\000\000\000\106\000\106\000\106\000\000\000\106\000\
\106\000\106\000\106\000\106\000\106\000\106\000\106\000\106\000\
\000\000\106\000\106\000\106\000\106\000\106\000\106\000\106\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\106\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\106\000\000\000\106\000\042\000\
\000\000\106\000\042\000\042\000\000\000\000\000\042\000\000\000\
\000\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\
\042\000\042\000\042\000\042\000\000\000\000\000\042\000\042\000\
\042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\
\042\000\000\000\042\000\042\000\042\000\000\000\042\000\042\000\
\042\000\042\000\000\000\000\000\042\000\000\000\042\000\000\000\
\000\000\042\000\042\000\042\000\042\000\042\000\042\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\042\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\042\000\000\000\042\000\046\000\000\000\
\042\000\046\000\046\000\000\000\000\000\046\000\000\000\000\000\
\046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\
\046\000\046\000\046\000\000\000\000\000\046\000\046\000\046\000\
\046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\
\000\000\046\000\046\000\046\000\000\000\046\000\046\000\046\000\
\046\000\000\000\000\000\046\000\000\000\046\000\000\000\000\000\
\046\000\046\000\046\000\046\000\046\000\046\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\046\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\046\000\000\000\046\000\048\000\000\000\046\000\
\048\000\048\000\000\000\000\000\048\000\000\000\000\000\048\000\
\048\000\048\000\048\000\048\000\048\000\048\000\048\000\048\000\
\048\000\048\000\000\000\000\000\048\000\048\000\048\000\048\000\
\048\000\048\000\048\000\048\000\048\000\048\000\048\000\000\000\
\048\000\048\000\048\000\000\000\048\000\048\000\048\000\048\000\
\000\000\000\000\048\000\000\000\048\000\000\000\000\000\048\000\
\048\000\048\000\048\000\048\000\048\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\058\000\000\000\048\000\058\000\058\000\000\000\
\000\000\058\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\048\000\000\000\048\000\000\000\000\000\048\000\000\000\
\000\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\
\058\000\058\000\058\000\058\000\000\000\058\000\058\000\058\000\
\000\000\058\000\058\000\058\000\058\000\000\000\000\000\058\000\
\000\000\058\000\000\000\000\000\058\000\058\000\058\000\058\000\
\058\000\058\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\062\000\000\000\000\000\062\000\062\000\
\000\000\058\000\062\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\058\000\000\000\
\058\000\000\000\062\000\062\000\062\000\062\000\062\000\062\000\
\062\000\062\000\000\000\000\000\000\000\000\000\062\000\062\000\
\062\000\000\000\062\000\062\000\062\000\062\000\000\000\000\000\
\062\000\000\000\062\000\000\000\000\000\062\000\062\000\062\000\
\062\000\062\000\062\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\063\000\000\000\000\000\063\000\
\063\000\000\000\062\000\063\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\062\000\
\000\000\062\000\000\000\063\000\063\000\063\000\063\000\063\000\
\063\000\063\000\063\000\000\000\000\000\000\000\000\000\063\000\
\063\000\063\000\000\000\063\000\063\000\063\000\063\000\000\000\
\000\000\063\000\000\000\063\000\000\000\000\000\063\000\063\000\
\063\000\063\000\063\000\063\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\064\000\000\000\000\000\
\064\000\064\000\000\000\063\000\064\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\063\000\000\000\063\000\000\000\064\000\064\000\064\000\064\000\
\064\000\064\000\064\000\064\000\000\000\000\000\000\000\000\000\
\064\000\064\000\064\000\000\000\064\000\064\000\064\000\064\000\
\000\000\000\000\064\000\000\000\064\000\000\000\000\000\064\000\
\064\000\064\000\064\000\064\000\064\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\065\000\000\000\
\000\000\065\000\065\000\000\000\064\000\065\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\064\000\000\000\064\000\000\000\065\000\065\000\065\000\
\065\000\065\000\065\000\000\000\000\000\000\000\000\000\000\000\
\000\000\065\000\065\000\065\000\000\000\065\000\065\000\065\000\
\065\000\000\000\000\000\065\000\000\000\065\000\000\000\000\000\
\065\000\065\000\065\000\065\000\065\000\065\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\066\000\
\000\000\000\000\066\000\066\000\000\000\065\000\066\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\065\000\000\000\065\000\000\000\066\000\066\000\
\066\000\066\000\066\000\066\000\000\000\000\000\000\000\000\000\
\000\000\000\000\066\000\066\000\066\000\000\000\066\000\066\000\
\066\000\066\000\000\000\000\000\066\000\000\000\066\000\000\000\
\000\000\066\000\066\000\066\000\066\000\066\000\066\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\067\000\000\000\000\000\067\000\067\000\000\000\066\000\067\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\066\000\000\000\066\000\000\000\067\000\
\067\000\067\000\067\000\067\000\067\000\000\000\000\000\000\000\
\000\000\000\000\000\000\067\000\067\000\067\000\000\000\067\000\
\067\000\067\000\067\000\000\000\000\000\067\000\000\000\067\000\
\000\000\000\000\067\000\067\000\067\000\067\000\067\000\067\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\068\000\000\000\000\000\068\000\068\000\000\000\067\000\
\068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\067\000\000\000\067\000\000\000\
\068\000\068\000\068\000\068\000\068\000\068\000\000\000\000\000\
\000\000\000\000\000\000\000\000\068\000\068\000\068\000\000\000\
\068\000\068\000\000\000\000\000\000\000\000\000\068\000\000\000\
\068\000\000\000\000\000\068\000\068\000\068\000\068\000\068\000\
\068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\069\000\000\000\000\000\069\000\069\000\000\000\
\068\000\069\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\068\000\000\000\068\000\
\000\000\069\000\069\000\069\000\069\000\069\000\069\000\000\000\
\000\000\000\000\000\000\000\000\000\000\069\000\069\000\069\000\
\000\000\069\000\069\000\000\000\000\000\000\000\000\000\069\000\
\000\000\069\000\000\000\000\000\069\000\069\000\069\000\069\000\
\069\000\069\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\070\000\000\000\000\000\070\000\070\000\
\000\000\069\000\070\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\069\000\000\000\
\069\000\000\000\070\000\070\000\070\000\070\000\070\000\070\000\
\000\000\000\000\000\000\000\000\000\000\000\000\070\000\070\000\
\070\000\000\000\070\000\070\000\000\000\000\000\000\000\000\000\
\070\000\000\000\070\000\000\000\000\000\070\000\070\000\070\000\
\070\000\070\000\070\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\071\000\000\000\000\000\071\000\
\071\000\000\000\070\000\071\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\070\000\
\000\000\070\000\000\000\071\000\071\000\071\000\071\000\071\000\
\071\000\000\000\000\000\000\000\000\000\000\000\000\000\071\000\
\071\000\071\000\000\000\071\000\071\000\000\000\000\000\000\000\
\000\000\071\000\000\000\071\000\000\000\000\000\071\000\071\000\
\071\000\071\000\071\000\071\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\072\000\000\000\000\000\
\072\000\072\000\000\000\071\000\072\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\071\000\000\000\071\000\000\000\072\000\072\000\072\000\072\000\
\072\000\072\000\000\000\000\000\000\000\000\000\000\000\000\000\
\072\000\072\000\072\000\000\000\072\000\072\000\000\000\000\000\
\000\000\000\000\072\000\000\000\072\000\000\000\000\000\072\000\
\072\000\072\000\072\000\072\000\072\000\073\000\000\000\000\000\
\073\000\073\000\000\000\000\000\073\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\072\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\073\000\073\000\000\000\000\000\
\000\000\072\000\000\000\072\000\000\000\000\000\000\000\000\000\
\073\000\073\000\073\000\000\000\073\000\073\000\000\000\000\000\
\000\000\000\000\073\000\000\000\073\000\000\000\000\000\073\000\
\073\000\073\000\073\000\073\000\073\000\074\000\000\000\000\000\
\074\000\074\000\000\000\000\000\074\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\073\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\074\000\074\000\000\000\000\000\
\000\000\073\000\000\000\073\000\000\000\000\000\000\000\000\000\
\074\000\074\000\074\000\000\000\074\000\074\000\000\000\000\000\
\000\000\000\000\074\000\000\000\074\000\000\000\000\000\074\000\
\074\000\074\000\074\000\074\000\074\000\075\000\000\000\000\000\
\075\000\075\000\000\000\000\000\075\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\074\000\000\000\000\000\000\000\
\000\000\000\000\000\000\076\000\075\000\075\000\076\000\076\000\
\000\000\074\000\076\000\074\000\000\000\000\000\000\000\000\000\
\075\000\075\000\075\000\000\000\075\000\075\000\000\000\000\000\
\000\000\000\000\075\000\000\000\075\000\000\000\000\000\075\000\
\075\000\075\000\075\000\075\000\075\000\000\000\076\000\076\000\
\076\000\000\000\076\000\076\000\000\000\000\000\000\000\000\000\
\076\000\000\000\076\000\000\000\075\000\076\000\076\000\076\000\
\076\000\076\000\076\000\077\000\000\000\000\000\077\000\077\000\
\000\000\075\000\077\000\075\000\000\000\000\000\000\000\000\000\
\000\000\000\000\076\000\000\000\000\000\000\000\000\000\000\000\
\000\000\078\000\000\000\000\000\078\000\078\000\000\000\076\000\
\078\000\076\000\000\000\000\000\000\000\000\000\077\000\077\000\
\077\000\000\000\077\000\077\000\000\000\000\000\000\000\000\000\
\077\000\000\000\077\000\000\000\000\000\077\000\077\000\077\000\
\077\000\077\000\077\000\000\000\000\000\078\000\078\000\000\000\
\078\000\078\000\000\000\000\000\000\000\000\000\078\000\000\000\
\078\000\000\000\077\000\078\000\078\000\078\000\078\000\078\000\
\078\000\079\000\000\000\000\000\079\000\079\000\000\000\077\000\
\079\000\077\000\000\000\000\000\000\000\000\000\000\000\000\000\
\078\000\000\000\000\000\000\000\000\000\000\000\000\000\080\000\
\000\000\000\000\080\000\080\000\000\000\078\000\080\000\078\000\
\000\000\000\000\000\000\000\000\000\000\079\000\079\000\000\000\
\079\000\079\000\000\000\000\000\000\000\000\000\079\000\000\000\
\079\000\000\000\000\000\079\000\079\000\079\000\079\000\079\000\
\079\000\000\000\000\000\080\000\000\000\000\000\080\000\080\000\
\000\000\000\000\000\000\000\000\080\000\000\000\080\000\000\000\
\079\000\080\000\080\000\080\000\080\000\080\000\080\000\081\000\
\000\000\000\000\081\000\081\000\000\000\079\000\081\000\079\000\
\000\000\000\000\000\000\000\000\000\000\000\000\080\000\000\000\
\000\000\000\000\000\000\000\000\000\000\082\000\000\000\000\000\
\082\000\082\000\000\000\080\000\082\000\080\000\000\000\000\000\
\000\000\000\000\000\000\081\000\000\000\000\000\081\000\081\000\
\000\000\000\000\000\000\000\000\081\000\000\000\081\000\000\000\
\000\000\081\000\081\000\081\000\081\000\081\000\081\000\000\000\
\000\000\000\000\000\000\000\000\082\000\082\000\000\000\000\000\
\000\000\000\000\082\000\000\000\082\000\000\000\081\000\082\000\
\082\000\082\000\082\000\082\000\082\000\083\000\000\000\000\000\
\083\000\083\000\000\000\081\000\083\000\081\000\000\000\000\000\
\000\000\000\000\000\000\000\000\082\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\082\000\000\000\082\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\083\000\083\000\000\000\000\000\
\000\000\000\000\083\000\000\000\083\000\000\000\000\000\083\000\
\083\000\083\000\083\000\083\000\083\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\083\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\083\000\000\000\083\000\069\001\069\001\069\001\069\001\
\069\001\069\001\069\001\069\001\069\001\069\001\069\001\069\001\
\069\001\000\000\069\001\069\001\069\001\000\000\069\001\069\001\
\069\001\069\001\000\000\000\000\069\001\000\000\000\000\000\000\
\069\001\069\001\000\000\069\001\069\001\000\000\069\001\084\001\
\084\001\084\001\084\001\084\001\084\001\084\001\084\001\084\001\
\084\001\084\001\000\000\084\001\084\001\084\001\000\000\084\001\
\084\001\084\001\084\001\000\000\000\000\084\001\000\000\000\000\
\000\000\000\000\084\001\084\001\084\001\084\001\000\000\084\001\
\069\001\000\000\086\001\086\001\086\001\086\001\086\001\086\001\
\086\001\086\001\086\001\086\001\086\001\000\000\086\001\086\001\
\086\001\000\000\086\001\086\001\086\001\086\001\000\000\000\000\
\086\001\000\000\000\000\000\000\000\000\086\001\086\001\086\001\
\086\001\084\001\086\001\098\001\098\001\098\001\098\001\098\001\
\098\001\098\001\098\001\000\000\000\000\000\000\000\000\098\001\
\098\001\098\001\000\000\098\001\098\001\098\001\098\001\000\000\
\000\000\098\001\000\000\000\000\000\000\000\000\098\001\098\001\
\098\001\098\001\000\000\098\001\086\001\000\000\099\001\099\001\
\099\001\099\001\099\001\099\001\099\001\099\001\000\000\000\000\
\000\000\000\000\099\001\099\001\099\001\000\000\099\001\099\001\
\099\001\099\001\000\000\000\000\099\001\000\000\000\000\000\000\
\000\000\099\001\099\001\099\001\099\001\098\001\099\001\100\001\
\100\001\100\001\100\001\100\001\100\001\100\001\100\001\000\000\
\000\000\000\000\000\000\100\001\100\001\100\001\000\000\100\001\
\100\001\100\001\100\001\000\000\000\000\100\001\000\000\000\000\
\000\000\000\000\100\001\100\001\100\001\100\001\000\000\100\001\
\099\001\000\000\101\001\101\001\101\001\101\001\101\001\101\001\
\000\000\000\000\000\000\000\000\000\000\000\000\101\001\101\001\
\101\001\000\000\101\001\101\001\101\001\101\001\000\000\000\000\
\101\001\000\000\000\000\000\000\000\000\101\001\101\001\101\001\
\101\001\100\001\101\001\102\001\102\001\102\001\102\001\102\001\
\102\001\000\000\000\000\000\000\000\000\000\000\000\000\102\001\
\102\001\102\001\000\000\102\001\102\001\102\001\102\001\000\000\
\000\000\102\001\000\000\000\000\000\000\000\000\102\001\102\001\
\102\001\102\001\000\000\102\001\101\001\000\000\103\001\103\001\
\103\001\103\001\103\001\103\001\000\000\000\000\000\000\000\000\
\000\000\000\000\103\001\103\001\103\001\000\000\103\001\103\001\
\103\001\103\001\000\000\000\000\103\001\000\000\000\000\000\000\
\000\000\103\001\103\001\103\001\103\001\102\001\103\001\104\001\
\104\001\104\001\104\001\104\001\104\001\000\000\000\000\000\000\
\000\000\000\000\000\000\104\001\104\001\104\001\000\000\104\001\
\104\001\000\000\000\000\000\000\000\000\104\001\000\000\000\000\
\000\000\000\000\104\001\104\001\104\001\104\001\000\000\104\001\
\103\001\000\000\105\001\105\001\105\001\105\001\105\001\105\001\
\000\000\000\000\000\000\000\000\000\000\000\000\105\001\105\001\
\105\001\000\000\105\001\105\001\000\000\000\000\000\000\000\000\
\105\001\000\000\000\000\000\000\000\000\105\001\105\001\105\001\
\105\001\104\001\105\001\106\001\106\001\106\001\106\001\106\001\
\106\001\000\000\000\000\000\000\000\000\000\000\000\000\106\001\
\106\001\106\001\000\000\106\001\106\001\000\000\000\000\000\000\
\000\000\106\001\000\000\000\000\000\000\000\000\106\001\106\001\
\106\001\106\001\000\000\106\001\105\001\000\000\107\001\107\001\
\107\001\107\001\107\001\107\001\000\000\000\000\000\000\000\000\
\000\000\000\000\107\001\107\001\107\001\000\000\107\001\107\001\
\000\000\000\000\000\000\000\000\107\001\000\000\000\000\000\000\
\000\000\107\001\107\001\107\001\107\001\106\001\107\001\108\001\
\108\001\108\001\108\001\108\001\108\001\000\000\000\000\000\000\
\000\000\000\000\000\000\108\001\108\001\108\001\000\000\108\001\
\108\001\000\000\000\000\000\000\000\000\108\001\000\000\000\000\
\000\000\000\000\108\001\108\001\108\001\108\001\000\000\108\001\
\107\001\000\000\000\000\000\000\000\000\023\000\023\000\023\000\
\023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\
\023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\
\023\000\023\000\023\000\023\000\023\000\000\000\023\000\023\000\
\023\000\108\001\023\000\023\000\023\000\023\000\023\000\023\000\
\000\000\023\000\023\000\000\000\023\000\000\000\018\000\000\000\
\023\000\000\000\023\000\023\000\023\000\023\000\023\000\023\000\
\023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\
\023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\
\023\000\023\000\023\000\000\000\023\000\023\000\023\000\000\000\
\023\000\023\000\023\000\023\000\023\000\023\000\000\000\023\000\
\000\000\000\000\023\000\000\000\000\000\023\000\023\000\000\000\
\023\000"

let yycheck = "\021\000\
\048\000\088\000\028\000\001\000\002\000\004\000\077\000\128\000\
\000\000\025\001\149\000\138\000\000\000\044\000\036\000\013\001\
\060\000\043\000\191\001\001\000\002\000\044\000\000\000\078\000\
\027\001\034\001\001\001\178\000\000\001\148\000\028\000\006\001\
\014\000\050\001\051\001\066\002\000\001\124\000\069\002\021\000\
\022\000\072\002\036\000\025\000\026\000\043\000\028\000\091\000\
\030\000\152\002\120\002\158\000\159\000\076\001\012\000\013\000\
\198\000\015\000\001\001\000\001\001\001\043\000\001\001\045\000\
\055\001\087\000\001\001\089\000\050\000\208\000\052\000\006\001\
\064\001\055\000\070\001\000\001\098\000\099\000\100\000\101\000\
\102\000\103\000\104\000\000\001\075\001\001\001\068\000\079\001\
\007\001\022\001\113\001\000\001\234\000\026\001\236\000\077\000\
\001\001\072\001\001\001\071\001\203\002\006\001\001\001\006\001\
\070\001\063\000\088\000\006\001\072\001\067\000\104\000\181\002\
\055\001\007\001\055\001\073\000\129\002\034\001\149\000\098\000\
\099\000\100\000\101\000\102\000\103\000\123\000\149\000\070\001\
\069\001\070\001\055\001\070\001\073\001\076\001\075\001\076\001\
\077\001\072\001\149\000\055\001\243\002\123\000\001\001\118\001\
\175\000\072\001\198\000\006\001\174\000\001\001\198\000\164\002\
\207\000\001\001\006\001\072\001\178\000\022\001\006\001\076\001\
\077\001\026\001\027\001\072\001\069\001\070\001\148\000\070\001\
\073\001\200\002\073\001\070\001\077\001\090\002\205\002\118\001\
\174\000\118\001\187\001\042\001\099\001\100\001\234\000\118\001\
\236\000\208\000\234\000\072\001\236\000\192\001\069\001\077\001\
\174\000\079\001\025\001\000\001\070\001\208\000\077\001\216\001\
\203\001\052\001\088\001\055\001\001\001\099\001\100\001\055\001\
\230\000\006\001\000\001\097\001\098\001\118\001\045\001\118\001\
\198\000\069\001\070\001\118\001\091\001\073\001\070\001\000\001\
\055\001\077\001\007\001\008\001\250\000\251\000\252\000\253\000\
\254\000\255\000\000\001\001\001\002\001\003\001\004\001\005\001\
\006\001\007\001\008\001\009\001\010\001\011\001\012\001\013\001\
\023\001\144\001\145\001\070\001\234\000\020\001\236\000\188\001\
\250\000\001\001\070\001\118\001\000\001\013\000\006\001\015\000\
\000\001\096\001\118\001\072\001\000\001\202\001\118\001\204\001\
\251\000\252\000\253\000\072\001\096\000\097\000\000\001\070\001\
\070\002\077\001\072\001\079\001\001\001\077\001\076\001\079\001\
\048\002\006\001\248\000\249\000\088\001\055\001\036\002\072\001\
\088\001\046\001\071\000\076\001\077\001\069\001\189\000\190\000\
\191\000\192\000\193\000\194\000\070\001\077\001\036\001\073\001\
\064\000\246\001\110\001\111\001\042\001\001\001\099\001\100\001\
\069\001\118\001\006\001\188\001\073\001\069\001\070\001\192\001\
\055\001\073\001\046\001\001\001\072\001\077\001\095\001\071\001\
\006\001\202\001\203\001\204\001\000\000\045\001\046\001\064\001\
\106\002\001\001\142\001\108\001\138\002\076\001\006\001\077\001\
\183\001\079\001\001\001\072\001\146\002\073\001\079\001\149\002\
\122\002\007\001\088\001\153\002\124\002\001\001\000\001\187\000\
\188\000\073\001\006\001\097\001\098\001\001\001\118\001\069\001\
\196\000\197\000\144\001\145\001\014\000\246\001\197\001\077\001\
\074\001\034\001\070\001\077\001\022\000\220\001\163\000\025\000\
\026\000\166\000\167\000\168\000\030\000\071\001\171\000\172\000\
\072\001\118\001\072\001\077\001\106\001\107\001\196\002\001\001\
\196\001\199\002\055\001\186\001\006\001\069\001\070\001\070\001\
\050\000\073\001\052\000\096\002\069\001\077\001\070\001\069\001\
\199\001\095\001\075\001\076\001\077\001\075\001\075\001\076\001\
\013\003\074\001\118\001\072\001\072\001\078\001\108\001\069\001\
\021\003\237\001\238\001\233\002\059\002\075\001\024\001\001\001\
\118\001\027\001\069\001\241\002\006\001\099\001\100\001\197\001\
\075\001\001\000\002\000\095\001\087\002\204\001\118\001\069\001\
\072\001\191\001\041\002\001\003\074\001\075\001\076\001\197\001\
\108\001\048\002\074\001\070\001\070\001\077\001\108\002\109\002\
\069\001\183\001\118\001\075\001\073\001\112\002\001\001\096\002\
\077\001\065\001\066\001\006\001\067\002\124\001\125\001\126\001\
\127\001\128\001\129\001\130\001\131\001\132\001\133\001\134\001\
\135\001\136\001\137\001\138\001\139\001\140\001\141\001\188\002\
\052\002\053\001\054\001\071\001\071\001\076\002\072\001\078\002\
\076\001\076\001\081\002\075\001\118\001\065\002\036\002\069\001\
\055\001\056\001\057\001\106\002\074\001\075\001\076\001\077\001\
\053\001\073\002\059\001\056\001\055\001\095\001\075\001\053\002\
\119\002\078\001\000\001\122\002\065\001\124\002\070\001\091\002\
\069\001\073\001\108\001\070\001\047\001\048\001\073\001\061\001\
\000\001\001\001\065\001\066\001\118\001\060\001\006\001\076\002\
\087\002\078\002\024\001\113\001\081\002\027\001\028\001\063\001\
\087\002\031\001\024\001\188\002\001\001\027\001\028\001\069\001\
\070\001\031\001\076\001\073\001\053\001\054\001\076\002\077\001\
\078\002\152\002\040\002\081\002\049\001\050\001\051\001\052\001\
\077\001\112\002\142\002\118\001\118\002\145\002\076\002\182\002\
\078\002\240\001\034\001\081\002\152\002\047\001\048\001\055\001\
\049\001\050\001\051\001\052\001\090\002\101\001\197\002\055\001\
\070\001\000\001\001\001\073\001\077\001\069\001\070\001\076\001\
\118\002\073\001\076\001\075\001\076\001\077\001\108\002\109\002\
\069\001\095\001\092\001\093\001\163\002\055\001\056\001\057\001\
\118\002\095\001\077\001\097\001\045\001\046\001\108\001\069\001\
\110\001\076\001\077\001\129\002\106\002\034\001\108\001\203\002\
\110\001\024\001\127\001\128\001\027\001\028\001\206\002\077\001\
\031\001\001\001\067\001\068\001\122\002\070\001\118\001\076\001\
\073\001\000\001\152\002\131\001\132\001\133\001\134\001\072\001\
\024\001\076\001\077\001\027\001\028\001\012\003\164\002\031\001\
\076\001\077\001\234\002\071\001\000\001\001\001\072\001\243\002\
\071\001\222\001\006\001\129\001\130\001\009\001\010\001\011\001\
\012\001\013\001\014\001\034\001\016\001\017\001\018\001\019\001\
\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\
\028\001\029\001\030\001\031\001\155\002\156\002\070\001\072\001\
\095\001\073\001\097\001\135\001\136\001\116\002\254\000\255\000\
\069\001\255\002\000\001\001\001\069\001\108\001\069\001\110\001\
\001\001\072\001\070\001\055\001\075\001\076\001\077\001\095\001\
\070\001\097\001\002\001\003\001\004\001\005\001\070\001\006\001\
\007\001\069\001\070\001\070\001\108\001\073\001\110\001\075\001\
\076\001\077\001\069\001\069\001\059\001\061\001\060\001\024\001\
\077\001\069\001\027\001\028\001\063\001\004\001\031\001\004\001\
\069\001\004\001\001\001\095\001\096\001\071\001\098\001\024\001\
\113\001\071\001\027\001\028\001\069\001\071\001\031\001\105\001\
\108\001\069\001\110\001\000\001\001\001\071\001\069\001\077\001\
\116\001\006\001\118\001\069\001\009\001\010\001\011\001\012\001\
\013\001\014\001\000\001\016\001\017\001\018\001\019\001\020\001\
\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\
\029\001\030\001\031\001\075\001\069\001\076\001\071\001\071\001\
\071\001\074\001\075\001\076\001\077\001\078\001\095\001\071\001\
\076\001\071\001\077\001\060\001\034\001\071\001\063\001\064\001\
\069\001\069\001\055\001\108\001\069\001\110\001\095\001\069\001\
\069\001\074\001\075\001\076\001\077\001\001\001\079\001\070\001\
\069\001\070\001\069\001\108\001\073\001\110\001\075\001\076\001\
\077\001\069\001\074\001\001\001\075\001\001\001\070\001\069\001\
\077\001\076\001\072\001\076\001\073\001\075\001\076\001\077\001\
\071\001\071\001\095\001\096\001\071\001\098\001\024\001\071\001\
\113\001\027\001\028\001\069\001\069\001\031\001\069\001\108\001\
\077\001\110\001\000\001\001\001\069\001\077\001\069\001\116\001\
\006\001\118\001\077\001\009\001\010\001\011\001\012\001\013\001\
\014\001\077\001\016\001\017\001\018\001\019\001\020\001\021\001\
\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\
\030\001\031\001\074\001\077\001\070\001\047\001\048\001\049\001\
\050\001\051\001\052\001\053\001\054\001\055\001\056\001\057\001\
\075\001\059\001\060\001\061\001\072\001\063\001\064\001\065\001\
\066\001\055\001\072\001\069\001\072\001\095\001\077\001\034\001\
\074\001\075\001\076\001\077\001\075\001\079\001\071\001\069\001\
\070\001\069\001\108\001\073\001\110\001\075\001\076\001\077\001\
\034\001\035\001\036\001\037\001\038\001\039\001\040\001\041\001\
\042\001\043\001\044\001\069\001\069\001\075\001\070\001\076\001\
\076\001\095\001\096\001\001\001\098\001\075\001\070\001\113\001\
\076\001\071\001\069\001\077\001\069\001\076\001\108\001\071\001\
\110\001\000\001\001\001\074\001\069\001\075\001\116\001\006\001\
\118\001\076\001\009\001\010\001\011\001\012\001\013\001\014\001\
\076\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\
\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\
\031\001\045\001\046\001\047\001\048\001\049\001\050\001\051\001\
\052\001\053\001\054\001\055\001\056\001\057\001\087\001\059\001\
\060\001\061\001\070\001\063\001\064\001\065\001\066\001\074\001\
\055\001\069\001\069\001\069\001\069\001\073\001\074\001\075\001\
\076\001\077\001\071\001\079\001\071\001\071\001\069\001\070\001\
\076\001\094\001\073\001\076\001\075\001\076\001\077\001\007\001\
\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\
\008\001\001\001\059\001\060\001\061\001\074\001\063\001\064\001\
\095\001\096\001\075\001\098\001\069\001\113\001\076\001\076\001\
\075\001\074\001\075\001\076\001\077\001\108\001\079\001\110\001\
\032\001\033\001\034\001\063\001\064\001\116\001\073\001\118\001\
\069\001\069\001\001\001\069\001\075\001\077\001\074\001\075\001\
\076\001\077\001\070\001\079\001\076\001\053\001\054\001\055\001\
\074\001\069\001\058\001\059\001\075\001\077\001\062\001\063\001\
\113\001\069\001\069\001\067\001\068\001\069\001\070\001\000\001\
\072\001\073\001\074\001\075\001\076\001\077\001\071\001\076\001\
\069\001\069\001\073\001\069\001\071\001\113\001\113\001\114\001\
\115\001\116\001\117\001\118\001\119\001\120\001\121\001\122\001\
\123\001\069\001\071\001\099\001\100\001\076\001\102\001\071\001\
\069\001\075\001\106\001\107\001\071\001\076\001\071\001\071\001\
\074\001\070\001\069\001\071\001\069\001\117\001\118\001\000\001\
\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\
\009\001\010\001\011\001\012\001\013\001\014\001\076\001\016\001\
\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\
\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\
\033\001\076\001\069\001\069\001\069\001\002\000\123\000\192\001\
\175\002\181\002\046\001\023\001\057\002\221\001\135\000\138\001\
\056\002\116\002\139\001\137\001\053\001\054\001\055\001\237\002\
\140\001\058\001\059\001\163\002\091\002\062\001\063\001\141\001\
\207\001\155\000\067\001\068\001\008\001\070\001\071\001\072\001\
\009\001\011\001\010\001\076\001\005\003\012\001\255\255\080\001\
\081\001\082\001\083\001\084\001\085\001\086\001\087\001\088\001\
\089\001\090\001\091\001\003\003\255\255\021\003\095\001\096\001\
\097\001\098\001\099\001\100\001\255\255\102\001\255\255\255\255\
\105\001\106\001\107\001\108\001\109\001\110\001\111\001\112\001\
\255\255\255\255\255\255\116\001\117\001\000\001\001\001\002\001\
\003\001\004\001\005\001\006\001\007\001\008\001\009\001\010\001\
\011\001\012\001\013\001\014\001\255\255\016\001\017\001\018\001\
\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\
\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\053\001\054\001\055\001\255\255\255\255\058\001\
\059\001\255\255\255\255\062\001\063\001\255\255\255\255\255\255\
\067\001\068\001\255\255\070\001\071\001\072\001\255\255\255\255\
\255\255\076\001\255\255\255\255\255\255\080\001\081\001\082\001\
\083\001\084\001\085\001\086\001\087\001\088\001\089\001\090\001\
\091\001\255\255\255\255\255\255\095\001\096\001\097\001\098\001\
\099\001\100\001\255\255\102\001\255\255\255\255\255\255\106\001\
\107\001\108\001\109\001\110\001\111\001\112\001\255\255\255\255\
\255\255\116\001\117\001\000\001\001\001\002\001\003\001\004\001\
\005\001\006\001\007\001\008\001\009\001\010\001\011\001\012\001\
\013\001\014\001\255\255\016\001\017\001\018\001\019\001\020\001\
\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\
\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\053\001\054\001\055\001\255\255\255\255\058\001\059\001\255\255\
\255\255\062\001\063\001\255\255\255\255\255\255\067\001\068\001\
\255\255\070\001\071\001\072\001\255\255\255\255\255\255\076\001\
\255\255\255\255\255\255\080\001\081\001\082\001\083\001\084\001\
\085\001\086\001\087\001\088\001\089\001\090\001\091\001\255\255\
\255\255\255\255\095\001\096\001\097\001\098\001\099\001\100\001\
\255\255\102\001\255\255\255\255\255\255\106\001\107\001\108\001\
\109\001\110\001\111\001\112\001\255\255\255\255\255\255\116\001\
\117\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\
\007\001\008\001\009\001\010\001\011\001\012\001\013\001\014\001\
\255\255\016\001\017\001\018\001\019\001\020\001\021\001\022\001\
\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\
\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\053\001\054\001\
\055\001\255\255\255\255\058\001\059\001\255\255\255\255\062\001\
\063\001\255\255\255\255\255\255\067\001\068\001\255\255\070\001\
\255\255\072\001\255\255\255\255\255\255\076\001\255\255\255\255\
\255\255\080\001\081\001\082\001\083\001\084\001\085\001\086\001\
\087\001\088\001\089\001\090\001\091\001\255\255\255\255\255\255\
\095\001\096\001\097\001\098\001\099\001\100\001\255\255\102\001\
\255\255\255\255\255\255\106\001\107\001\108\001\109\001\110\001\
\111\001\112\001\255\255\255\255\255\255\116\001\117\001\000\001\
\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\
\009\001\010\001\011\001\012\001\013\001\014\001\255\255\016\001\
\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\
\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\
\033\001\063\001\064\001\255\255\255\255\255\255\255\255\069\001\
\255\255\255\255\255\255\255\255\074\001\075\001\076\001\077\001\
\255\255\079\001\255\255\255\255\053\001\054\001\055\001\255\255\
\255\255\058\001\059\001\255\255\255\255\062\001\063\001\255\255\
\255\255\064\001\067\001\068\001\255\255\070\001\069\001\072\001\
\255\255\255\255\255\255\074\001\075\001\076\001\077\001\255\255\
\079\001\255\255\255\255\113\001\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\095\001\096\001\
\255\255\098\001\099\001\100\001\255\255\102\001\255\255\255\255\
\255\255\106\001\107\001\108\001\255\255\110\001\255\255\255\255\
\255\255\255\255\113\001\116\001\117\001\000\001\001\001\002\001\
\003\001\004\001\005\001\006\001\007\001\008\001\009\001\010\001\
\011\001\012\001\013\001\014\001\255\255\016\001\017\001\018\001\
\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\
\027\001\028\001\029\001\030\001\031\001\032\001\033\001\064\001\
\255\255\255\255\255\255\255\255\069\001\255\255\255\255\255\255\
\255\255\074\001\075\001\076\001\077\001\255\255\079\001\255\255\
\255\255\255\255\053\001\054\001\055\001\255\255\255\255\058\001\
\059\001\255\255\255\255\062\001\063\001\255\255\255\255\255\255\
\067\001\068\001\255\255\070\001\000\001\001\001\002\001\003\001\
\004\001\005\001\255\255\007\001\008\001\255\255\255\255\255\255\
\113\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\095\001\096\001\255\255\098\001\
\099\001\100\001\255\255\102\001\032\001\033\001\255\255\106\001\
\107\001\108\001\255\255\110\001\255\255\255\255\255\255\255\255\
\255\255\116\001\117\001\255\255\255\255\255\255\255\255\255\255\
\255\255\053\001\054\001\055\001\255\255\255\255\058\001\059\001\
\255\255\255\255\062\001\063\001\255\255\255\255\255\255\067\001\
\068\001\255\255\070\001\255\255\072\001\255\255\255\255\255\255\
\076\001\255\255\255\255\255\255\080\001\081\001\082\001\083\001\
\084\001\085\001\086\001\087\001\088\001\089\001\090\001\091\001\
\255\255\255\255\255\255\255\255\255\255\097\001\255\255\099\001\
\100\001\255\255\102\001\255\255\255\255\255\255\106\001\107\001\
\255\255\109\001\255\255\255\255\255\255\255\255\255\255\047\001\
\048\001\117\001\001\001\002\001\003\001\004\001\005\001\006\001\
\007\001\008\001\255\255\059\001\060\001\061\001\255\255\063\001\
\064\001\255\255\255\255\255\255\255\255\069\001\255\255\255\255\
\255\255\255\255\074\001\075\001\076\001\077\001\255\255\079\001\
\255\255\032\001\033\001\001\001\255\255\255\255\004\001\255\255\
\006\001\007\001\255\255\255\255\255\255\255\255\255\255\046\001\
\255\255\255\255\255\255\255\255\255\255\255\255\053\001\054\001\
\055\001\255\255\024\001\058\001\059\001\027\001\255\255\062\001\
\063\001\113\001\032\001\033\001\067\001\068\001\255\255\070\001\
\255\255\072\001\073\001\255\255\255\255\000\001\001\001\002\001\
\003\001\004\001\005\001\255\255\007\001\008\001\255\255\053\001\
\054\001\055\001\255\255\255\255\058\001\059\001\255\255\255\255\
\062\001\255\255\255\255\255\255\099\001\100\001\255\255\102\001\
\070\001\255\255\255\255\106\001\107\001\032\001\033\001\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\117\001\118\001\
\086\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\053\001\054\001\055\001\099\001\100\001\058\001\
\059\001\255\255\255\255\062\001\063\001\255\255\255\255\255\255\
\067\001\068\001\255\255\070\001\255\255\255\255\255\255\255\255\
\255\255\076\001\000\001\001\001\002\001\003\001\004\001\005\001\
\255\255\007\001\008\001\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\099\001\100\001\255\255\102\001\255\255\255\255\255\255\106\001\
\107\001\255\255\032\001\033\001\255\255\255\255\255\255\255\255\
\255\255\255\255\117\001\255\255\024\001\255\255\255\255\027\001\
\028\001\255\255\255\255\031\001\255\255\255\255\255\255\053\001\
\054\001\055\001\255\255\255\255\058\001\059\001\255\255\255\255\
\062\001\063\001\255\255\255\255\255\255\067\001\068\001\255\255\
\070\001\255\255\255\255\255\255\074\001\255\255\000\001\001\001\
\002\001\003\001\004\001\005\001\064\001\007\001\008\001\255\255\
\255\255\069\001\255\255\071\001\255\255\255\255\074\001\075\001\
\076\001\077\001\078\001\079\001\255\255\099\001\100\001\255\255\
\102\001\255\255\255\255\255\255\106\001\107\001\032\001\033\001\
\255\255\255\255\255\255\095\001\255\255\255\255\255\255\117\001\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\108\001\255\255\110\001\053\001\054\001\055\001\255\255\255\255\
\058\001\059\001\255\255\255\255\062\001\063\001\255\255\255\255\
\255\255\067\001\068\001\255\255\070\001\000\001\001\001\002\001\
\003\001\004\001\005\001\255\255\007\001\008\001\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\000\001\001\001\002\001\003\001\004\001\005\001\255\255\007\001\
\008\001\099\001\100\001\255\255\102\001\032\001\033\001\255\255\
\106\001\107\001\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\117\001\255\255\255\255\255\255\255\255\
\032\001\033\001\053\001\054\001\055\001\255\255\255\255\058\001\
\059\001\255\255\255\255\062\001\063\001\255\255\255\255\255\255\
\067\001\068\001\255\255\070\001\255\255\053\001\054\001\055\001\
\255\255\255\255\058\001\059\001\255\255\255\255\062\001\063\001\
\255\255\255\255\255\255\067\001\068\001\255\255\070\001\000\001\
\001\001\002\001\003\001\004\001\005\001\255\255\007\001\008\001\
\099\001\100\001\255\255\102\001\255\255\255\255\255\255\106\001\
\107\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\117\001\099\001\100\001\255\255\102\001\032\001\
\033\001\255\255\106\001\107\001\024\001\255\255\255\255\027\001\
\028\001\255\255\255\255\031\001\255\255\117\001\255\255\255\255\
\255\255\255\255\255\255\255\255\053\001\054\001\055\001\255\255\
\255\255\058\001\059\001\255\255\255\255\062\001\063\001\255\255\
\255\255\255\255\067\001\068\001\255\255\070\001\000\001\001\001\
\002\001\003\001\004\001\005\001\064\001\007\001\008\001\255\255\
\255\255\069\001\255\255\071\001\255\255\255\255\074\001\075\001\
\076\001\077\001\078\001\079\001\255\255\255\255\255\255\255\255\
\255\255\255\255\099\001\100\001\255\255\102\001\032\001\033\001\
\255\255\106\001\107\001\095\001\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\117\001\255\255\255\255\255\255\
\108\001\255\255\110\001\053\001\054\001\055\001\255\255\060\001\
\058\001\059\001\063\001\064\001\062\001\063\001\255\255\255\255\
\069\001\067\001\068\001\255\255\070\001\074\001\075\001\076\001\
\077\001\255\255\079\001\255\255\059\001\060\001\061\001\255\255\
\063\001\064\001\255\255\255\255\255\255\255\255\069\001\255\255\
\255\255\255\255\255\255\074\001\075\001\076\001\077\001\255\255\
\079\001\099\001\100\001\255\255\102\001\255\255\255\255\255\255\
\106\001\107\001\255\255\255\255\113\001\255\255\255\255\255\255\
\255\255\255\255\255\255\117\001\001\001\002\001\003\001\004\001\
\005\001\006\001\007\001\008\001\009\001\010\001\011\001\012\001\
\013\001\014\001\113\001\016\001\017\001\018\001\019\001\020\001\
\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\
\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\053\001\054\001\055\001\255\255\255\255\058\001\059\001\255\255\
\255\255\062\001\063\001\255\255\255\255\255\255\067\001\068\001\
\255\255\070\001\060\001\061\001\255\255\063\001\064\001\255\255\
\255\255\255\255\255\255\069\001\255\255\255\255\255\255\255\255\
\074\001\075\001\076\001\077\001\255\255\079\001\255\255\255\255\
\255\255\255\255\095\001\096\001\255\255\098\001\099\001\100\001\
\255\255\102\001\255\255\255\255\255\255\106\001\107\001\108\001\
\000\001\110\001\255\255\255\255\255\255\255\255\006\001\116\001\
\117\001\009\001\010\001\011\001\012\001\013\001\014\001\113\001\
\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\
\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\
\255\255\255\255\255\255\255\255\060\001\061\001\255\255\063\001\
\064\001\255\255\255\255\255\255\255\255\069\001\255\255\255\255\
\255\255\255\255\074\001\075\001\076\001\077\001\255\255\079\001\
\255\255\255\255\047\001\048\001\255\255\001\001\002\001\003\001\
\004\001\005\001\255\255\007\001\008\001\255\255\059\001\060\001\
\061\001\255\255\063\001\064\001\076\001\255\255\255\255\255\255\
\069\001\255\255\255\255\255\255\255\255\074\001\075\001\076\001\
\077\001\113\001\079\001\255\255\032\001\033\001\034\001\095\001\
\096\001\255\255\098\001\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\108\001\255\255\110\001\111\001\
\112\001\053\001\054\001\055\001\116\001\255\255\058\001\059\001\
\255\255\255\255\062\001\063\001\113\001\255\255\255\255\067\001\
\068\001\255\255\070\001\255\255\072\001\001\001\002\001\003\001\
\004\001\005\001\255\255\007\001\008\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\099\001\
\100\001\255\255\102\001\255\255\032\001\033\001\106\001\107\001\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\117\001\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\053\001\054\001\055\001\255\255\255\255\058\001\059\001\
\255\255\255\255\062\001\063\001\255\255\255\255\255\255\067\001\
\068\001\255\255\070\001\255\255\072\001\001\001\002\001\003\001\
\004\001\005\001\255\255\007\001\008\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\099\001\
\100\001\255\255\102\001\255\255\032\001\033\001\106\001\107\001\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\117\001\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\053\001\054\001\055\001\255\255\255\255\058\001\059\001\
\255\255\255\255\062\001\063\001\255\255\255\255\255\255\067\001\
\068\001\255\255\070\001\255\255\072\001\001\001\002\001\003\001\
\004\001\005\001\255\255\007\001\008\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\099\001\
\100\001\255\255\102\001\255\255\032\001\033\001\106\001\107\001\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\117\001\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\053\001\054\001\055\001\255\255\255\255\058\001\059\001\
\255\255\255\255\062\001\063\001\255\255\255\255\255\255\067\001\
\068\001\255\255\070\001\255\255\072\001\001\001\002\001\003\001\
\004\001\005\001\255\255\007\001\008\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\099\001\
\100\001\255\255\102\001\255\255\032\001\033\001\106\001\107\001\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\117\001\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\053\001\054\001\055\001\255\255\255\255\058\001\059\001\
\255\255\255\255\062\001\063\001\255\255\255\255\255\255\067\001\
\068\001\255\255\070\001\255\255\001\001\002\001\003\001\004\001\
\005\001\255\255\007\001\008\001\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\001\001\
\002\001\003\001\004\001\005\001\255\255\007\001\008\001\099\001\
\100\001\255\255\102\001\032\001\033\001\255\255\106\001\107\001\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\117\001\255\255\255\255\255\255\255\255\032\001\033\001\
\053\001\054\001\055\001\255\255\255\255\058\001\059\001\255\255\
\255\255\062\001\063\001\255\255\255\255\255\255\067\001\068\001\
\255\255\070\001\255\255\053\001\054\001\055\001\255\255\255\255\
\058\001\059\001\255\255\255\255\062\001\063\001\255\255\255\255\
\255\255\067\001\068\001\255\255\070\001\255\255\001\001\002\001\
\003\001\004\001\005\001\255\255\007\001\008\001\099\001\100\001\
\255\255\102\001\255\255\255\255\255\255\106\001\107\001\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\117\001\099\001\100\001\255\255\102\001\032\001\033\001\255\255\
\106\001\107\001\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\117\001\255\255\255\255\255\255\255\255\
\255\255\255\255\053\001\054\001\055\001\255\255\255\255\058\001\
\059\001\255\255\255\255\062\001\063\001\255\255\255\255\255\255\
\067\001\068\001\255\255\070\001\255\255\001\001\002\001\003\001\
\004\001\005\001\255\255\007\001\008\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\001\001\002\001\003\001\004\001\005\001\255\255\007\001\008\001\
\099\001\100\001\255\255\102\001\032\001\033\001\255\255\106\001\
\107\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\117\001\255\255\255\255\255\255\255\255\032\001\
\033\001\053\001\054\001\055\001\255\255\255\255\058\001\059\001\
\255\255\255\255\062\001\063\001\255\255\255\255\255\255\067\001\
\068\001\255\255\070\001\255\255\053\001\054\001\055\001\255\255\
\255\255\058\001\059\001\255\255\255\255\062\001\063\001\255\255\
\255\255\255\255\067\001\068\001\255\255\070\001\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\099\001\
\100\001\255\255\102\001\255\255\255\255\255\255\106\001\107\001\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\117\001\099\001\100\001\255\255\102\001\001\001\255\255\
\255\255\106\001\107\001\006\001\255\255\255\255\009\001\010\001\
\011\001\012\001\013\001\014\001\117\001\016\001\017\001\018\001\
\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\
\027\001\028\001\029\001\030\001\031\001\001\001\255\255\255\255\
\255\255\255\255\006\001\255\255\255\255\009\001\010\001\011\001\
\012\001\013\001\014\001\255\255\016\001\017\001\018\001\019\001\
\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\
\028\001\029\001\030\001\031\001\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\047\001\048\001\255\255\
\255\255\076\001\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\059\001\060\001\061\001\255\255\063\001\064\001\255\255\
\255\255\255\255\255\255\069\001\095\001\096\001\097\001\098\001\
\074\001\075\001\076\001\077\001\255\255\079\001\255\255\255\255\
\255\255\108\001\255\255\110\001\111\001\112\001\255\255\114\001\
\115\001\116\001\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\095\001\096\001\097\001\098\001\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\113\001\
\108\001\255\255\110\001\111\001\112\001\255\255\114\001\115\001\
\116\001\006\001\255\255\255\255\009\001\010\001\011\001\012\001\
\013\001\014\001\255\255\016\001\017\001\018\001\019\001\020\001\
\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\
\029\001\030\001\031\001\255\255\255\255\034\001\035\001\036\001\
\037\001\038\001\039\001\040\001\041\001\042\001\043\001\044\001\
\045\001\046\001\047\001\048\001\049\001\050\001\051\001\052\001\
\053\001\054\001\055\001\056\001\057\001\255\255\059\001\060\001\
\061\001\255\255\063\001\064\001\065\001\066\001\067\001\068\001\
\069\001\070\001\071\001\072\001\073\001\074\001\075\001\076\001\
\077\001\078\001\079\001\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\095\001\096\001\255\255\098\001\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\108\001\
\255\255\110\001\255\255\255\255\113\001\006\001\007\001\116\001\
\009\001\010\001\011\001\012\001\013\001\014\001\255\255\016\001\
\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\
\025\001\026\001\027\001\028\001\029\001\030\001\031\001\255\255\
\006\001\255\255\255\255\009\001\010\001\011\001\012\001\013\001\
\014\001\255\255\016\001\017\001\018\001\019\001\020\001\021\001\
\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\
\030\001\031\001\255\255\255\255\255\255\255\255\006\001\255\255\
\255\255\009\001\010\001\011\001\012\001\013\001\014\001\255\255\
\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\
\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\
\255\255\255\255\255\255\255\255\255\255\255\255\095\001\096\001\
\070\001\098\001\099\001\100\001\255\255\255\255\255\255\255\255\
\078\001\255\255\255\255\108\001\255\255\110\001\255\255\255\255\
\255\255\255\255\255\255\116\001\255\255\255\255\255\255\255\255\
\255\255\095\001\096\001\255\255\098\001\069\001\070\001\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\108\001\255\255\
\110\001\255\255\255\255\255\255\255\255\255\255\116\001\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\095\001\
\096\001\255\255\098\001\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\108\001\255\255\110\001\255\255\
\255\255\255\255\006\001\255\255\116\001\009\001\010\001\011\001\
\012\001\013\001\014\001\255\255\016\001\017\001\018\001\019\001\
\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\
\028\001\029\001\030\001\031\001\255\255\006\001\255\255\255\255\
\009\001\010\001\011\001\012\001\013\001\014\001\255\255\016\001\
\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\
\025\001\026\001\027\001\028\001\029\001\030\001\031\001\255\255\
\255\255\006\001\255\255\255\255\009\001\010\001\011\001\012\001\
\013\001\014\001\070\001\016\001\017\001\018\001\019\001\020\001\
\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\
\029\001\030\001\031\001\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\095\001\096\001\255\255\098\001\072\001\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\108\001\255\255\110\001\255\255\255\255\255\255\255\255\255\255\
\116\001\255\255\255\255\255\255\255\255\255\255\095\001\096\001\
\255\255\098\001\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\078\001\255\255\108\001\255\255\110\001\255\255\255\255\
\255\255\255\255\255\255\116\001\255\255\255\255\255\255\255\255\
\255\255\255\255\095\001\096\001\255\255\098\001\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\108\001\
\255\255\110\001\255\255\255\255\255\255\006\001\255\255\116\001\
\009\001\010\001\011\001\012\001\013\001\014\001\255\255\016\001\
\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\
\025\001\026\001\027\001\028\001\029\001\030\001\031\001\009\001\
\010\001\011\001\012\001\013\001\014\001\255\255\016\001\017\001\
\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\
\026\001\027\001\028\001\029\001\030\001\031\001\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\000\001\001\001\255\255\255\255\004\001\255\255\006\001\
\007\001\255\255\255\255\255\255\255\255\255\255\095\001\096\001\
\255\255\098\001\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\024\001\255\255\108\001\027\001\110\001\255\255\255\255\
\255\255\032\001\033\001\116\001\255\255\095\001\096\001\255\255\
\098\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\108\001\255\255\110\001\255\255\053\001\054\001\
\055\001\255\255\116\001\058\001\059\001\000\001\001\001\062\001\
\255\255\004\001\255\255\006\001\007\001\255\255\069\001\070\001\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\024\001\255\255\086\001\
\027\001\255\255\255\255\255\255\255\255\032\001\033\001\255\255\
\255\255\255\255\255\255\255\255\099\001\100\001\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\053\001\054\001\055\001\255\255\255\255\058\001\
\059\001\000\001\001\001\062\001\255\255\004\001\255\255\006\001\
\007\001\255\255\255\255\070\001\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\024\001\255\255\086\001\027\001\255\255\255\255\255\255\
\255\255\032\001\033\001\255\255\255\255\255\255\255\255\255\255\
\099\001\100\001\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\053\001\054\001\
\055\001\255\255\255\255\058\001\059\001\000\001\001\001\062\001\
\255\255\004\001\255\255\006\001\007\001\255\255\255\255\070\001\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\024\001\255\255\086\001\
\027\001\255\255\255\255\255\255\255\255\032\001\033\001\255\255\
\255\255\255\255\255\255\255\255\099\001\100\001\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\053\001\054\001\055\001\255\255\255\255\058\001\
\059\001\255\255\255\255\062\001\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\070\001\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\086\001\255\255\255\255\255\255\255\255\
\024\001\255\255\255\255\027\001\028\001\255\255\255\255\031\001\
\099\001\100\001\034\001\035\001\036\001\037\001\038\001\039\001\
\040\001\041\001\042\001\043\001\044\001\045\001\046\001\047\001\
\048\001\049\001\050\001\051\001\052\001\053\001\054\001\055\001\
\056\001\057\001\255\255\059\001\060\001\061\001\255\255\063\001\
\064\001\065\001\066\001\067\001\068\001\069\001\070\001\071\001\
\255\255\073\001\074\001\075\001\076\001\077\001\078\001\079\001\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\095\001\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\108\001\255\255\110\001\024\001\
\255\255\113\001\027\001\028\001\255\255\255\255\031\001\255\255\
\255\255\034\001\035\001\036\001\037\001\038\001\039\001\040\001\
\041\001\042\001\043\001\044\001\255\255\255\255\047\001\048\001\
\049\001\050\001\051\001\052\001\053\001\054\001\055\001\056\001\
\057\001\255\255\059\001\060\001\061\001\255\255\063\001\064\001\
\065\001\066\001\255\255\255\255\069\001\255\255\071\001\255\255\
\255\255\074\001\075\001\076\001\077\001\078\001\079\001\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\095\001\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\108\001\255\255\110\001\024\001\255\255\
\113\001\027\001\028\001\255\255\255\255\031\001\255\255\255\255\
\034\001\035\001\036\001\037\001\038\001\039\001\040\001\041\001\
\042\001\043\001\044\001\255\255\255\255\047\001\048\001\049\001\
\050\001\051\001\052\001\053\001\054\001\055\001\056\001\057\001\
\255\255\059\001\060\001\061\001\255\255\063\001\064\001\065\001\
\066\001\255\255\255\255\069\001\255\255\071\001\255\255\255\255\
\074\001\075\001\076\001\077\001\078\001\079\001\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\095\001\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\108\001\255\255\110\001\024\001\255\255\113\001\
\027\001\028\001\255\255\255\255\031\001\255\255\255\255\034\001\
\035\001\036\001\037\001\038\001\039\001\040\001\041\001\042\001\
\043\001\044\001\255\255\255\255\047\001\048\001\049\001\050\001\
\051\001\052\001\053\001\054\001\055\001\056\001\057\001\255\255\
\059\001\060\001\061\001\255\255\063\001\064\001\065\001\066\001\
\255\255\255\255\069\001\255\255\071\001\255\255\255\255\074\001\
\075\001\076\001\077\001\078\001\079\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\024\001\255\255\095\001\027\001\028\001\255\255\
\255\255\031\001\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\108\001\255\255\110\001\255\255\255\255\113\001\255\255\
\255\255\047\001\048\001\049\001\050\001\051\001\052\001\053\001\
\054\001\055\001\056\001\057\001\255\255\059\001\060\001\061\001\
\255\255\063\001\064\001\065\001\066\001\255\255\255\255\069\001\
\255\255\071\001\255\255\255\255\074\001\075\001\076\001\077\001\
\078\001\079\001\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\024\001\255\255\255\255\027\001\028\001\
\255\255\095\001\031\001\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\108\001\255\255\
\110\001\255\255\047\001\048\001\049\001\050\001\051\001\052\001\
\053\001\054\001\255\255\255\255\255\255\255\255\059\001\060\001\
\061\001\255\255\063\001\064\001\065\001\066\001\255\255\255\255\
\069\001\255\255\071\001\255\255\255\255\074\001\075\001\076\001\
\077\001\078\001\079\001\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\024\001\255\255\255\255\027\001\
\028\001\255\255\095\001\031\001\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\108\001\
\255\255\110\001\255\255\047\001\048\001\049\001\050\001\051\001\
\052\001\053\001\054\001\255\255\255\255\255\255\255\255\059\001\
\060\001\061\001\255\255\063\001\064\001\065\001\066\001\255\255\
\255\255\069\001\255\255\071\001\255\255\255\255\074\001\075\001\
\076\001\077\001\078\001\079\001\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\024\001\255\255\255\255\
\027\001\028\001\255\255\095\001\031\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\108\001\255\255\110\001\255\255\047\001\048\001\049\001\050\001\
\051\001\052\001\053\001\054\001\255\255\255\255\255\255\255\255\
\059\001\060\001\061\001\255\255\063\001\064\001\065\001\066\001\
\255\255\255\255\069\001\255\255\071\001\255\255\255\255\074\001\
\075\001\076\001\077\001\078\001\079\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\024\001\255\255\
\255\255\027\001\028\001\255\255\095\001\031\001\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\108\001\255\255\110\001\255\255\047\001\048\001\049\001\
\050\001\051\001\052\001\255\255\255\255\255\255\255\255\255\255\
\255\255\059\001\060\001\061\001\255\255\063\001\064\001\065\001\
\066\001\255\255\255\255\069\001\255\255\071\001\255\255\255\255\
\074\001\075\001\076\001\077\001\078\001\079\001\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\024\001\
\255\255\255\255\027\001\028\001\255\255\095\001\031\001\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\108\001\255\255\110\001\255\255\047\001\048\001\
\049\001\050\001\051\001\052\001\255\255\255\255\255\255\255\255\
\255\255\255\255\059\001\060\001\061\001\255\255\063\001\064\001\
\065\001\066\001\255\255\255\255\069\001\255\255\071\001\255\255\
\255\255\074\001\075\001\076\001\077\001\078\001\079\001\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\024\001\255\255\255\255\027\001\028\001\255\255\095\001\031\001\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\108\001\255\255\110\001\255\255\047\001\
\048\001\049\001\050\001\051\001\052\001\255\255\255\255\255\255\
\255\255\255\255\255\255\059\001\060\001\061\001\255\255\063\001\
\064\001\065\001\066\001\255\255\255\255\069\001\255\255\071\001\
\255\255\255\255\074\001\075\001\076\001\077\001\078\001\079\001\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\024\001\255\255\255\255\027\001\028\001\255\255\095\001\
\031\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\108\001\255\255\110\001\255\255\
\047\001\048\001\049\001\050\001\051\001\052\001\255\255\255\255\
\255\255\255\255\255\255\255\255\059\001\060\001\061\001\255\255\
\063\001\064\001\255\255\255\255\255\255\255\255\069\001\255\255\
\071\001\255\255\255\255\074\001\075\001\076\001\077\001\078\001\
\079\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\024\001\255\255\255\255\027\001\028\001\255\255\
\095\001\031\001\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\108\001\255\255\110\001\
\255\255\047\001\048\001\049\001\050\001\051\001\052\001\255\255\
\255\255\255\255\255\255\255\255\255\255\059\001\060\001\061\001\
\255\255\063\001\064\001\255\255\255\255\255\255\255\255\069\001\
\255\255\071\001\255\255\255\255\074\001\075\001\076\001\077\001\
\078\001\079\001\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\024\001\255\255\255\255\027\001\028\001\
\255\255\095\001\031\001\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\108\001\255\255\
\110\001\255\255\047\001\048\001\049\001\050\001\051\001\052\001\
\255\255\255\255\255\255\255\255\255\255\255\255\059\001\060\001\
\061\001\255\255\063\001\064\001\255\255\255\255\255\255\255\255\
\069\001\255\255\071\001\255\255\255\255\074\001\075\001\076\001\
\077\001\078\001\079\001\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\024\001\255\255\255\255\027\001\
\028\001\255\255\095\001\031\001\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\108\001\
\255\255\110\001\255\255\047\001\048\001\049\001\050\001\051\001\
\052\001\255\255\255\255\255\255\255\255\255\255\255\255\059\001\
\060\001\061\001\255\255\063\001\064\001\255\255\255\255\255\255\
\255\255\069\001\255\255\071\001\255\255\255\255\074\001\075\001\
\076\001\077\001\078\001\079\001\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\024\001\255\255\255\255\
\027\001\028\001\255\255\095\001\031\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\108\001\255\255\110\001\255\255\047\001\048\001\049\001\050\001\
\051\001\052\001\255\255\255\255\255\255\255\255\255\255\255\255\
\059\001\060\001\061\001\255\255\063\001\064\001\255\255\255\255\
\255\255\255\255\069\001\255\255\071\001\255\255\255\255\074\001\
\075\001\076\001\077\001\078\001\079\001\024\001\255\255\255\255\
\027\001\028\001\255\255\255\255\031\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\095\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\047\001\048\001\255\255\255\255\
\255\255\108\001\255\255\110\001\255\255\255\255\255\255\255\255\
\059\001\060\001\061\001\255\255\063\001\064\001\255\255\255\255\
\255\255\255\255\069\001\255\255\071\001\255\255\255\255\074\001\
\075\001\076\001\077\001\078\001\079\001\024\001\255\255\255\255\
\027\001\028\001\255\255\255\255\031\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\095\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\047\001\048\001\255\255\255\255\
\255\255\108\001\255\255\110\001\255\255\255\255\255\255\255\255\
\059\001\060\001\061\001\255\255\063\001\064\001\255\255\255\255\
\255\255\255\255\069\001\255\255\071\001\255\255\255\255\074\001\
\075\001\076\001\077\001\078\001\079\001\024\001\255\255\255\255\
\027\001\028\001\255\255\255\255\031\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\095\001\255\255\255\255\255\255\
\255\255\255\255\255\255\024\001\047\001\048\001\027\001\028\001\
\255\255\108\001\031\001\110\001\255\255\255\255\255\255\255\255\
\059\001\060\001\061\001\255\255\063\001\064\001\255\255\255\255\
\255\255\255\255\069\001\255\255\071\001\255\255\255\255\074\001\
\075\001\076\001\077\001\078\001\079\001\255\255\059\001\060\001\
\061\001\255\255\063\001\064\001\255\255\255\255\255\255\255\255\
\069\001\255\255\071\001\255\255\095\001\074\001\075\001\076\001\
\077\001\078\001\079\001\024\001\255\255\255\255\027\001\028\001\
\255\255\108\001\031\001\110\001\255\255\255\255\255\255\255\255\
\255\255\255\255\095\001\255\255\255\255\255\255\255\255\255\255\
\255\255\024\001\255\255\255\255\027\001\028\001\255\255\108\001\
\031\001\110\001\255\255\255\255\255\255\255\255\059\001\060\001\
\061\001\255\255\063\001\064\001\255\255\255\255\255\255\255\255\
\069\001\255\255\071\001\255\255\255\255\074\001\075\001\076\001\
\077\001\078\001\079\001\255\255\255\255\060\001\061\001\255\255\
\063\001\064\001\255\255\255\255\255\255\255\255\069\001\255\255\
\071\001\255\255\095\001\074\001\075\001\076\001\077\001\078\001\
\079\001\024\001\255\255\255\255\027\001\028\001\255\255\108\001\
\031\001\110\001\255\255\255\255\255\255\255\255\255\255\255\255\
\095\001\255\255\255\255\255\255\255\255\255\255\255\255\024\001\
\255\255\255\255\027\001\028\001\255\255\108\001\031\001\110\001\
\255\255\255\255\255\255\255\255\255\255\060\001\061\001\255\255\
\063\001\064\001\255\255\255\255\255\255\255\255\069\001\255\255\
\071\001\255\255\255\255\074\001\075\001\076\001\077\001\078\001\
\079\001\255\255\255\255\060\001\255\255\255\255\063\001\064\001\
\255\255\255\255\255\255\255\255\069\001\255\255\071\001\255\255\
\095\001\074\001\075\001\076\001\077\001\078\001\079\001\024\001\
\255\255\255\255\027\001\028\001\255\255\108\001\031\001\110\001\
\255\255\255\255\255\255\255\255\255\255\255\255\095\001\255\255\
\255\255\255\255\255\255\255\255\255\255\024\001\255\255\255\255\
\027\001\028\001\255\255\108\001\031\001\110\001\255\255\255\255\
\255\255\255\255\255\255\060\001\255\255\255\255\063\001\064\001\
\255\255\255\255\255\255\255\255\069\001\255\255\071\001\255\255\
\255\255\074\001\075\001\076\001\077\001\078\001\079\001\255\255\
\255\255\255\255\255\255\255\255\063\001\064\001\255\255\255\255\
\255\255\255\255\069\001\255\255\071\001\255\255\095\001\074\001\
\075\001\076\001\077\001\078\001\079\001\024\001\255\255\255\255\
\027\001\028\001\255\255\108\001\031\001\110\001\255\255\255\255\
\255\255\255\255\255\255\255\255\095\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\108\001\255\255\110\001\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\063\001\064\001\255\255\255\255\
\255\255\255\255\069\001\255\255\071\001\255\255\255\255\074\001\
\075\001\076\001\077\001\078\001\079\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\095\001\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\108\001\255\255\110\001\045\001\046\001\047\001\048\001\
\049\001\050\001\051\001\052\001\053\001\054\001\055\001\056\001\
\057\001\255\255\059\001\060\001\061\001\255\255\063\001\064\001\
\065\001\066\001\255\255\255\255\069\001\255\255\255\255\255\255\
\073\001\074\001\255\255\076\001\077\001\255\255\079\001\047\001\
\048\001\049\001\050\001\051\001\052\001\053\001\054\001\055\001\
\056\001\057\001\255\255\059\001\060\001\061\001\255\255\063\001\
\064\001\065\001\066\001\255\255\255\255\069\001\255\255\255\255\
\255\255\255\255\074\001\075\001\076\001\077\001\255\255\079\001\
\113\001\255\255\047\001\048\001\049\001\050\001\051\001\052\001\
\053\001\054\001\055\001\056\001\057\001\255\255\059\001\060\001\
\061\001\255\255\063\001\064\001\065\001\066\001\255\255\255\255\
\069\001\255\255\255\255\255\255\255\255\074\001\075\001\076\001\
\077\001\113\001\079\001\047\001\048\001\049\001\050\001\051\001\
\052\001\053\001\054\001\255\255\255\255\255\255\255\255\059\001\
\060\001\061\001\255\255\063\001\064\001\065\001\066\001\255\255\
\255\255\069\001\255\255\255\255\255\255\255\255\074\001\075\001\
\076\001\077\001\255\255\079\001\113\001\255\255\047\001\048\001\
\049\001\050\001\051\001\052\001\053\001\054\001\255\255\255\255\
\255\255\255\255\059\001\060\001\061\001\255\255\063\001\064\001\
\065\001\066\001\255\255\255\255\069\001\255\255\255\255\255\255\
\255\255\074\001\075\001\076\001\077\001\113\001\079\001\047\001\
\048\001\049\001\050\001\051\001\052\001\053\001\054\001\255\255\
\255\255\255\255\255\255\059\001\060\001\061\001\255\255\063\001\
\064\001\065\001\066\001\255\255\255\255\069\001\255\255\255\255\
\255\255\255\255\074\001\075\001\076\001\077\001\255\255\079\001\
\113\001\255\255\047\001\048\001\049\001\050\001\051\001\052\001\
\255\255\255\255\255\255\255\255\255\255\255\255\059\001\060\001\
\061\001\255\255\063\001\064\001\065\001\066\001\255\255\255\255\
\069\001\255\255\255\255\255\255\255\255\074\001\075\001\076\001\
\077\001\113\001\079\001\047\001\048\001\049\001\050\001\051\001\
\052\001\255\255\255\255\255\255\255\255\255\255\255\255\059\001\
\060\001\061\001\255\255\063\001\064\001\065\001\066\001\255\255\
\255\255\069\001\255\255\255\255\255\255\255\255\074\001\075\001\
\076\001\077\001\255\255\079\001\113\001\255\255\047\001\048\001\
\049\001\050\001\051\001\052\001\255\255\255\255\255\255\255\255\
\255\255\255\255\059\001\060\001\061\001\255\255\063\001\064\001\
\065\001\066\001\255\255\255\255\069\001\255\255\255\255\255\255\
\255\255\074\001\075\001\076\001\077\001\113\001\079\001\047\001\
\048\001\049\001\050\001\051\001\052\001\255\255\255\255\255\255\
\255\255\255\255\255\255\059\001\060\001\061\001\255\255\063\001\
\064\001\255\255\255\255\255\255\255\255\069\001\255\255\255\255\
\255\255\255\255\074\001\075\001\076\001\077\001\255\255\079\001\
\113\001\255\255\047\001\048\001\049\001\050\001\051\001\052\001\
\255\255\255\255\255\255\255\255\255\255\255\255\059\001\060\001\
\061\001\255\255\063\001\064\001\255\255\255\255\255\255\255\255\
\069\001\255\255\255\255\255\255\255\255\074\001\075\001\076\001\
\077\001\113\001\079\001\047\001\048\001\049\001\050\001\051\001\
\052\001\255\255\255\255\255\255\255\255\255\255\255\255\059\001\
\060\001\061\001\255\255\063\001\064\001\255\255\255\255\255\255\
\255\255\069\001\255\255\255\255\255\255\255\255\074\001\075\001\
\076\001\077\001\255\255\079\001\113\001\255\255\047\001\048\001\
\049\001\050\001\051\001\052\001\255\255\255\255\255\255\255\255\
\255\255\255\255\059\001\060\001\061\001\255\255\063\001\064\001\
\255\255\255\255\255\255\255\255\069\001\255\255\255\255\255\255\
\255\255\074\001\075\001\076\001\077\001\113\001\079\001\047\001\
\048\001\049\001\050\001\051\001\052\001\255\255\255\255\255\255\
\255\255\255\255\255\255\059\001\060\001\061\001\255\255\063\001\
\064\001\255\255\255\255\255\255\255\255\069\001\255\255\255\255\
\255\255\255\255\074\001\075\001\076\001\077\001\255\255\079\001\
\113\001\255\255\255\255\255\255\255\255\034\001\035\001\036\001\
\037\001\038\001\039\001\040\001\041\001\042\001\043\001\044\001\
\045\001\046\001\047\001\048\001\049\001\050\001\051\001\052\001\
\053\001\054\001\055\001\056\001\057\001\255\255\059\001\060\001\
\061\001\113\001\063\001\064\001\065\001\066\001\067\001\068\001\
\255\255\070\001\071\001\255\255\073\001\255\255\075\001\255\255\
\077\001\255\255\079\001\034\001\035\001\036\001\037\001\038\001\
\039\001\040\001\041\001\042\001\043\001\044\001\045\001\046\001\
\047\001\048\001\049\001\050\001\051\001\052\001\053\001\054\001\
\055\001\056\001\057\001\255\255\059\001\060\001\061\001\255\255\
\063\001\064\001\065\001\066\001\067\001\068\001\255\255\070\001\
\255\255\255\255\073\001\255\255\255\255\076\001\077\001\255\255\
\079\001"

let yynames_const = "\
  EOF\000\
  EQ\000\
  PLUS_EQ\000\
  MINUS_EQ\000\
  STAR_EQ\000\
  SLASH_EQ\000\
  PERCENT_EQ\000\
  AND_EQ\000\
  PIPE_EQ\000\
  CIRC_EQ\000\
  INF_INF_EQ\000\
  SUP_SUP_EQ\000\
  ARROW\000\
  DOT\000\
  EQ_EQ\000\
  EXCLAM_EQ\000\
  INF\000\
  SUP\000\
  INF_EQ\000\
  SUP_EQ\000\
  SLASH\000\
  PERCENT\000\
  PIPE\000\
  CIRC\000\
  PIPE_PIPE\000\
  INF_INF\000\
  SUP_SUP\000\
  RPAREN\000\
  LBRACKET\000\
  RBRACKET\000\
  COLON\000\
  COMMA\000\
  ELLIPSIS\000\
  QUEST\000\
  ELSE\000\
  LABEL__\000\
  BUILTIN_VA_LIST\000\
  BLOCKATTRIBUTE\000\
  PRAGMA_EOL\000\
  AT_NAME\000\
  "

let yynames_block = "\
  IDENT\000\
  CST_CHAR\000\
  CST_WCHAR\000\
  CST_INT\000\
  CST_FLOAT\000\
  NAMED_TYPE\000\
  CST_STRING\000\
  CST_WSTRING\000\
  CHAR\000\
  INT\000\
  DOUBLE\000\
  FLOAT\000\
  VOID\000\
  INT64\000\
  INT32\000\
  ENUM\000\
  STRUCT\000\
  TYPEDEF\000\
  UNION\000\
  SIGNED\000\
  UNSIGNED\000\
  LONG\000\
  SHORT\000\
  VOLATILE\000\
  EXTERN\000\
  STATIC\000\
  CONST\000\
  RESTRICT\000\
  AUTO\000\
  REGISTER\000\
  THREAD\000\
  SIZEOF\000\
  ALIGNOF\000\
  PLUS\000\
  MINUS\000\
  STAR\000\
  TILDE\000\
  AND\000\
  EXCLAM\000\
  AND_AND\000\
  PLUS_PLUS\000\
  MINUS_MINUS\000\
  LPAREN\000\
  RBRACE\000\
  LBRACE\000\
  SEMICOLON\000\
  BREAK\000\
  CONTINUE\000\
  GOTO\000\
  RETURN\000\
  SWITCH\000\
  CASE\000\
  DEFAULT\000\
  WHILE\000\
  DO\000\
  FOR\000\
  IF\000\
  TRY\000\
  EXCEPT\000\
  FINALLY\000\
  ATTRIBUTE\000\
  INLINE\000\
  ASM\000\
  TYPEOF\000\
  FUNCTION__\000\
  PRETTY_FUNCTION__\000\
  BUILTIN_VA_ARG\000\
  ATTRIBUTE_USED\000\
  BUILTIN_TYPES_COMPAT\000\
  BUILTIN_OFFSETOF\000\
  DECLSPEC\000\
  MSASM\000\
  MSATTR\000\
  PRAGMA_LINE\000\
  PRAGMA\000\
  AT_TRANSFORM\000\
  AT_TRANSFORMEXPR\000\
  AT_SPECIFIER\000\
  AT_EXPR\000\
  "

let yyact = [|
  (fun _ -> failwith "parser")
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.definition list) in
    Obj.repr(
# 397 "src/frontc/cparser.mly"
              (_1)
# 2667 "src/frontc/cparser.ml"
               : Cabs.definition list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.definition list) in
    Obj.repr(
# 399 "src/frontc/cparser.mly"
                 (_1)
# 2674 "src/frontc/cparser.ml"
               : Cabs.definition list))
; (fun __caml_parser_env ->
    Obj.repr(
# 402 "src/frontc/cparser.mly"
                                        ( [] )
# 2680 "src/frontc/cparser.ml"
               : Cabs.definition list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.definition) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.definition list) in
    Obj.repr(
# 403 "src/frontc/cparser.mly"
                                        ( _1 :: _2 )
# 2688 "src/frontc/cparser.ml"
               : Cabs.definition list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.definition list) in
    Obj.repr(
# 404 "src/frontc/cparser.mly"
                                        ( _2 )
# 2696 "src/frontc/cparser.ml"
               : Cabs.definition list))
; (fun __caml_parser_env ->
    Obj.repr(
# 408 "src/frontc/cparser.mly"
                               ( currentLoc () )
# 2702 "src/frontc/cparser.ml"
               : Cabs.cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.definition) in
    Obj.repr(
# 413 "src/frontc/cparser.mly"
                                        ( _1 )
# 2709 "src/frontc/cparser.ml"
               : Cabs.definition))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.definition) in
    Obj.repr(
# 414 "src/frontc/cparser.mly"
                                        ( _1 )
# 2716 "src/frontc/cparser.ml"
               : Cabs.definition))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : string * cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.definition) in
    Obj.repr(
# 417 "src/frontc/cparser.mly"
                                        ( LINKAGE (fst _2, (*handleLoc*) (snd _2), [ _3 ]) )
# 2725 "src/frontc/cparser.ml"
               : Cabs.definition))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 3 : string * cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : Cabs.definition list) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 419 "src/frontc/cparser.mly"
                                        ( LINKAGE (fst _2, (*handleLoc*) (snd _2), _4)  )
# 2736 "src/frontc/cparser.ml"
               : Cabs.definition))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : string * cabsloc) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 421 "src/frontc/cparser.mly"
                                        ( GLOBASM (fst _3, (*handleLoc*) _1) )
# 2746 "src/frontc/cparser.ml"
               : Cabs.definition))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'pragma) in
    Obj.repr(
# 422 "src/frontc/cparser.mly"
                                        ( _1 )
# 2753 "src/frontc/cparser.ml"
               : Cabs.definition))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 5 : string * Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 3 : string list) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 : 'old_pardef_list) in
    let _6 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 427 "src/frontc/cparser.mly"
                           ( (* Convert pardecl to new style *)
                             let pardecl, isva = doOldParDecl _3 _5 in 
                             (* Make the function declarator *)
                             doDeclaration ((*handleLoc*) (snd _1)) []
                               [((fst _1, PROTO(JUSTBASE, pardecl,isva), [], cabslu),
                                 NO_INIT)]
                            )
# 2770 "src/frontc/cparser.ml"
               : Cabs.definition))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : string * Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 436 "src/frontc/cparser.mly"
                           ( (* Make the function declarator *)
                             doDeclaration ((*handleLoc*)(snd _1)) []
                               [((fst _1, PROTO(JUSTBASE,[],false), [], cabslu),
                                 NO_INIT)]
                            )
# 2783 "src/frontc/cparser.ml"
               : Cabs.definition))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 7 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 6 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 5 : Cabs.definition) in
    let _4 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _5 = (Parsing.peek_val __caml_parser_env 3 : string * Cabs.cabsloc) in
    let _6 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _7 = (Parsing.peek_val __caml_parser_env 1 : Cabs.definition list) in
    let _8 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 442 "src/frontc/cparser.mly"
                                                                        (
    checkConnective(fst _5);
    TRANSFORMER(_3, _7, _1)
  )
# 2800 "src/frontc/cparser.ml"
               : Cabs.definition))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 7 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 6 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 5 : Cabs.expression * cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _5 = (Parsing.peek_val __caml_parser_env 3 : string * Cabs.cabsloc) in
    let _6 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _7 = (Parsing.peek_val __caml_parser_env 1 : Cabs.expression * cabsloc) in
    let _8 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 447 "src/frontc/cparser.mly"
                                                                                   (
    checkConnective(fst _5);
    EXPRTRANSFORMER(fst _3, fst _7, _1)
  )
# 2817 "src/frontc/cparser.ml"
               : Cabs.definition))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 451 "src/frontc/cparser.mly"
                           ( PRAGMA (VARIABLE "parse_error", _1) )
# 2825 "src/frontc/cparser.ml"
               : Cabs.definition))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 455 "src/frontc/cparser.mly"
             (fst _1)
# 2832 "src/frontc/cparser.ml"
               : 'id_or_typename))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 456 "src/frontc/cparser.mly"
                  (fst _1)
# 2839 "src/frontc/cparser.ml"
               : 'id_or_typename))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : string * Cabs.cabsloc) in
    Obj.repr(
# 457 "src/frontc/cparser.mly"
                                        ( "@name(" ^ fst _3 ^ ")" )
# 2847 "src/frontc/cparser.ml"
               : 'id_or_typename))
; (fun __caml_parser_env ->
    Obj.repr(
# 461 "src/frontc/cparser.mly"
                                        ( () )
# 2853 "src/frontc/cparser.ml"
               : 'maybecomma))
; (fun __caml_parser_env ->
    Obj.repr(
# 462 "src/frontc/cparser.mly"
                                        ( () )
# 2859 "src/frontc/cparser.ml"
               : 'maybecomma))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 469 "src/frontc/cparser.mly"
          (VARIABLE (fst _1), snd _1)
# 2866 "src/frontc/cparser.ml"
               : 'primary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.constant * cabsloc) in
    Obj.repr(
# 471 "src/frontc/cparser.mly"
          (CONSTANT (fst _1), snd _1)
# 2873 "src/frontc/cparser.ml"
               : 'primary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.expression list * cabsloc) in
    Obj.repr(
# 473 "src/frontc/cparser.mly"
          (smooth_expression (fst _1), snd _1)
# 2880 "src/frontc/cparser.ml"
               : 'primary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.block * cabsloc * cabsloc) in
    Obj.repr(
# 475 "src/frontc/cparser.mly"
          ( GNU_BODY (fst3 _2), _1 )
# 2888 "src/frontc/cparser.ml"
               : 'primary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : string * Cabs.cabsloc) in
    Obj.repr(
# 479 "src/frontc/cparser.mly"
                         ( EXPR_PATTERN(fst _3), _1 )
# 2897 "src/frontc/cparser.ml"
               : 'primary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'primary_expression) in
    Obj.repr(
# 484 "src/frontc/cparser.mly"
                        ( _1 )
# 2904 "src/frontc/cparser.ml"
               : 'postfix_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'postfix_expression) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.expression list) in
    Obj.repr(
# 486 "src/frontc/cparser.mly"
   (INDEX (fst _1, smooth_expression _2), snd _1)
# 2912 "src/frontc/cparser.ml"
               : 'postfix_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : 'postfix_expression) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.expression list) in
    Obj.repr(
# 488 "src/frontc/cparser.mly"
   (CALL (fst _1, _3), snd _1)
# 2921 "src/frontc/cparser.ml"
               : 'postfix_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 5 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 3 : Cabs.expression * cabsloc) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 : Cabs.spec_elem list * Cabs.decl_type) in
    Obj.repr(
# 490 "src/frontc/cparser.mly"
                        ( let b, d = _5 in
                          CALL (VARIABLE "__builtin_va_arg", 
                                [fst _3; TYPE_SIZEOF (b, d)]), _1 )
# 2933 "src/frontc/cparser.ml"
               : 'postfix_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 5 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 3 : Cabs.spec_elem list * Cabs.decl_type) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 : Cabs.spec_elem list * Cabs.decl_type) in
    Obj.repr(
# 494 "src/frontc/cparser.mly"
                        ( let b1,d1 = _3 in
                          let b2,d2 = _5 in
                          CALL (VARIABLE "__builtin_types_compatible_p", 
                                [TYPE_SIZEOF(b1,d1); TYPE_SIZEOF(b2,d2)]), _1 )
# 2946 "src/frontc/cparser.ml"
               : 'postfix_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 5 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 3 : Cabs.spec_elem list * Cabs.decl_type) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 : 'offsetof_member_designator) in
    Obj.repr(
# 499 "src/frontc/cparser.mly"
                        ( transformOffsetOf _3 (fst _5), _1 )
# 2956 "src/frontc/cparser.ml"
               : 'postfix_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'postfix_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'id_or_typename) in
    Obj.repr(
# 501 "src/frontc/cparser.mly"
          (MEMBEROF (fst _1, _3), snd _1)
# 2964 "src/frontc/cparser.ml"
               : 'postfix_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'postfix_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'id_or_typename) in
    Obj.repr(
# 503 "src/frontc/cparser.mly"
          (MEMBEROFPTR (fst _1, _3), snd _1)
# 2972 "src/frontc/cparser.ml"
               : 'postfix_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'postfix_expression) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 505 "src/frontc/cparser.mly"
          (UNARY (POSINCR, fst _1), snd _1)
# 2980 "src/frontc/cparser.ml"
               : 'postfix_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'postfix_expression) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 507 "src/frontc/cparser.mly"
          (UNARY (POSDECR, fst _1), snd _1)
# 2988 "src/frontc/cparser.ml"
               : 'postfix_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 5 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 4 : Cabs.spec_elem list * Cabs.decl_type) in
    let _4 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 : 'initializer_list_opt) in
    let _6 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 510 "src/frontc/cparser.mly"
          ( CAST(_2, COMPOUND_INIT _5), _1 )
# 2999 "src/frontc/cparser.ml"
               : 'postfix_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 515 "src/frontc/cparser.mly"
          ( VARIABLE (fst _1), snd _1 )
# 3006 "src/frontc/cparser.ml"
               : 'offsetof_member_designator))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'offsetof_member_designator) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 517 "src/frontc/cparser.mly"
   ( MEMBEROF (fst _1, fst _3), snd _1 )
# 3014 "src/frontc/cparser.ml"
               : 'offsetof_member_designator))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'offsetof_member_designator) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.expression list) in
    Obj.repr(
# 519 "src/frontc/cparser.mly"
   ( INDEX (fst _1, smooth_expression _2), snd _1 )
# 3022 "src/frontc/cparser.ml"
               : 'offsetof_member_designator))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'postfix_expression) in
    Obj.repr(
# 524 "src/frontc/cparser.mly"
                        ( _1 )
# 3029 "src/frontc/cparser.ml"
               : 'unary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'unary_expression) in
    Obj.repr(
# 526 "src/frontc/cparser.mly"
          (UNARY (PREINCR, fst _2), _1)
# 3037 "src/frontc/cparser.ml"
               : 'unary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'unary_expression) in
    Obj.repr(
# 528 "src/frontc/cparser.mly"
          (UNARY (PREDECR, fst _2), _1)
# 3045 "src/frontc/cparser.ml"
               : 'unary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'unary_expression) in
    Obj.repr(
# 530 "src/frontc/cparser.mly"
          (EXPR_SIZEOF (fst _2), _1)
# 3053 "src/frontc/cparser.ml"
               : 'unary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.spec_elem list * Cabs.decl_type) in
    Obj.repr(
# 532 "src/frontc/cparser.mly"
          (let b, d = _3 in TYPE_SIZEOF (b, d), _1)
# 3062 "src/frontc/cparser.ml"
               : 'unary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'unary_expression) in
    Obj.repr(
# 534 "src/frontc/cparser.mly"
          (EXPR_ALIGNOF (fst _2), _1)
# 3070 "src/frontc/cparser.ml"
               : 'unary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.spec_elem list * Cabs.decl_type) in
    Obj.repr(
# 536 "src/frontc/cparser.mly"
          (let b, d = _3 in TYPE_ALIGNOF (b, d), _1)
# 3079 "src/frontc/cparser.ml"
               : 'unary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'cast_expression) in
    Obj.repr(
# 538 "src/frontc/cparser.mly"
          (UNARY (PLUS, fst _2), _1)
# 3087 "src/frontc/cparser.ml"
               : 'unary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'cast_expression) in
    Obj.repr(
# 540 "src/frontc/cparser.mly"
          (UNARY (MINUS, fst _2), _1)
# 3095 "src/frontc/cparser.ml"
               : 'unary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'cast_expression) in
    Obj.repr(
# 542 "src/frontc/cparser.mly"
          (UNARY (MEMOF, fst _2), _1)
# 3103 "src/frontc/cparser.ml"
               : 'unary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'cast_expression) in
    Obj.repr(
# 544 "src/frontc/cparser.mly"
          (UNARY (ADDROF, fst _2), _1)
# 3111 "src/frontc/cparser.ml"
               : 'unary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'cast_expression) in
    Obj.repr(
# 546 "src/frontc/cparser.mly"
          (UNARY (NOT, fst _2), _1)
# 3119 "src/frontc/cparser.ml"
               : 'unary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'cast_expression) in
    Obj.repr(
# 548 "src/frontc/cparser.mly"
          (UNARY (BNOT, fst _2), _1)
# 3127 "src/frontc/cparser.ml"
               : 'unary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 549 "src/frontc/cparser.mly"
                               ( LABELADDR (fst _2), _1 )
# 3135 "src/frontc/cparser.ml"
               : 'unary_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'unary_expression) in
    Obj.repr(
# 554 "src/frontc/cparser.mly"
                         ( _1 )
# 3142 "src/frontc/cparser.ml"
               : 'cast_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.spec_elem list * Cabs.decl_type) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : 'cast_expression) in
    Obj.repr(
# 556 "src/frontc/cparser.mly"
           ( CAST(_2, SINGLE_INIT (fst _4)), _1 )
# 3151 "src/frontc/cparser.ml"
               : 'cast_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'cast_expression) in
    Obj.repr(
# 561 "src/frontc/cparser.mly"
                         ( _1 )
# 3158 "src/frontc/cparser.ml"
               : 'multiplicative_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'multiplicative_expression) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'cast_expression) in
    Obj.repr(
# 563 "src/frontc/cparser.mly"
   (BINARY(MUL, fst _1, fst _3), snd _1)
# 3167 "src/frontc/cparser.ml"
               : 'multiplicative_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'multiplicative_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'cast_expression) in
    Obj.repr(
# 565 "src/frontc/cparser.mly"
   (BINARY(DIV, fst _1, fst _3), snd _1)
# 3175 "src/frontc/cparser.ml"
               : 'multiplicative_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'multiplicative_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'cast_expression) in
    Obj.repr(
# 567 "src/frontc/cparser.mly"
   (BINARY(MOD, fst _1, fst _3), snd _1)
# 3183 "src/frontc/cparser.ml"
               : 'multiplicative_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'multiplicative_expression) in
    Obj.repr(
# 572 "src/frontc/cparser.mly"
                        ( _1 )
# 3190 "src/frontc/cparser.ml"
               : 'additive_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'additive_expression) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'multiplicative_expression) in
    Obj.repr(
# 574 "src/frontc/cparser.mly"
   (BINARY(ADD, fst _1, fst _3), snd _1)
# 3199 "src/frontc/cparser.ml"
               : 'additive_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'additive_expression) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'multiplicative_expression) in
    Obj.repr(
# 576 "src/frontc/cparser.mly"
   (BINARY(SUB, fst _1, fst _3), snd _1)
# 3208 "src/frontc/cparser.ml"
               : 'additive_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'additive_expression) in
    Obj.repr(
# 581 "src/frontc/cparser.mly"
                         ( _1 )
# 3215 "src/frontc/cparser.ml"
               : 'shift_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'shift_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'additive_expression) in
    Obj.repr(
# 583 "src/frontc/cparser.mly"
   (BINARY(SHL, fst _1, fst _3), snd _1)
# 3223 "src/frontc/cparser.ml"
               : 'shift_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'shift_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'additive_expression) in
    Obj.repr(
# 585 "src/frontc/cparser.mly"
   (BINARY(SHR, fst _1, fst _3), snd _1)
# 3231 "src/frontc/cparser.ml"
               : 'shift_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'shift_expression) in
    Obj.repr(
# 591 "src/frontc/cparser.mly"
                        ( _1 )
# 3238 "src/frontc/cparser.ml"
               : 'relational_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'relational_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'shift_expression) in
    Obj.repr(
# 593 "src/frontc/cparser.mly"
   (BINARY(LT, fst _1, fst _3), snd _1)
# 3246 "src/frontc/cparser.ml"
               : 'relational_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'relational_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'shift_expression) in
    Obj.repr(
# 595 "src/frontc/cparser.mly"
   (BINARY(GT, fst _1, fst _3), snd _1)
# 3254 "src/frontc/cparser.ml"
               : 'relational_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'relational_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'shift_expression) in
    Obj.repr(
# 597 "src/frontc/cparser.mly"
   (BINARY(LE, fst _1, fst _3), snd _1)
# 3262 "src/frontc/cparser.ml"
               : 'relational_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'relational_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'shift_expression) in
    Obj.repr(
# 599 "src/frontc/cparser.mly"
   (BINARY(GE, fst _1, fst _3), snd _1)
# 3270 "src/frontc/cparser.ml"
               : 'relational_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'relational_expression) in
    Obj.repr(
# 604 "src/frontc/cparser.mly"
                        ( _1 )
# 3277 "src/frontc/cparser.ml"
               : 'equality_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'equality_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'relational_expression) in
    Obj.repr(
# 606 "src/frontc/cparser.mly"
   (BINARY(EQ, fst _1, fst _3), snd _1)
# 3285 "src/frontc/cparser.ml"
               : 'equality_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'equality_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'relational_expression) in
    Obj.repr(
# 608 "src/frontc/cparser.mly"
   (BINARY(NE, fst _1, fst _3), snd _1)
# 3293 "src/frontc/cparser.ml"
               : 'equality_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'equality_expression) in
    Obj.repr(
# 614 "src/frontc/cparser.mly"
                       ( _1 )
# 3300 "src/frontc/cparser.ml"
               : 'bitwise_and_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'bitwise_and_expression) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'equality_expression) in
    Obj.repr(
# 616 "src/frontc/cparser.mly"
   (BINARY(BAND, fst _1, fst _3), snd _1)
# 3309 "src/frontc/cparser.ml"
               : 'bitwise_and_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'bitwise_and_expression) in
    Obj.repr(
# 621 "src/frontc/cparser.mly"
                       ( _1 )
# 3316 "src/frontc/cparser.ml"
               : 'bitwise_xor_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'bitwise_xor_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'bitwise_and_expression) in
    Obj.repr(
# 623 "src/frontc/cparser.mly"
   (BINARY(XOR, fst _1, fst _3), snd _1)
# 3324 "src/frontc/cparser.ml"
               : 'bitwise_xor_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'bitwise_xor_expression) in
    Obj.repr(
# 628 "src/frontc/cparser.mly"
                        ( _1 )
# 3331 "src/frontc/cparser.ml"
               : 'bitwise_or_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'bitwise_or_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'bitwise_xor_expression) in
    Obj.repr(
# 630 "src/frontc/cparser.mly"
   (BINARY(BOR, fst _1, fst _3), snd _1)
# 3339 "src/frontc/cparser.ml"
               : 'bitwise_or_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'bitwise_or_expression) in
    Obj.repr(
# 635 "src/frontc/cparser.mly"
                        ( _1 )
# 3346 "src/frontc/cparser.ml"
               : 'logical_and_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'logical_and_expression) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'bitwise_or_expression) in
    Obj.repr(
# 637 "src/frontc/cparser.mly"
   (BINARY(AND, fst _1, fst _3), snd _1)
# 3355 "src/frontc/cparser.ml"
               : 'logical_and_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'logical_and_expression) in
    Obj.repr(
# 642 "src/frontc/cparser.mly"
                        ( _1 )
# 3362 "src/frontc/cparser.ml"
               : 'logical_or_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'logical_or_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'logical_and_expression) in
    Obj.repr(
# 644 "src/frontc/cparser.mly"
   (BINARY(OR, fst _1, fst _3), snd _1)
# 3370 "src/frontc/cparser.ml"
               : 'logical_or_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'logical_or_expression) in
    Obj.repr(
# 649 "src/frontc/cparser.mly"
                         ( _1 )
# 3377 "src/frontc/cparser.ml"
               : 'conditional_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : 'logical_or_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : Cabs.expression) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : 'conditional_expression) in
    Obj.repr(
# 651 "src/frontc/cparser.mly"
   (QUESTION (fst _1, _3, fst _5), snd _1)
# 3386 "src/frontc/cparser.ml"
               : 'conditional_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'conditional_expression) in
    Obj.repr(
# 659 "src/frontc/cparser.mly"
                         ( _1 )
# 3393 "src/frontc/cparser.ml"
               : 'assignment_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'cast_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'assignment_expression) in
    Obj.repr(
# 661 "src/frontc/cparser.mly"
   (BINARY(ASSIGN, fst _1, fst _3), snd _1)
# 3401 "src/frontc/cparser.ml"
               : 'assignment_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'cast_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'assignment_expression) in
    Obj.repr(
# 663 "src/frontc/cparser.mly"
   (BINARY(ADD_ASSIGN, fst _1, fst _3), snd _1)
# 3409 "src/frontc/cparser.ml"
               : 'assignment_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'cast_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'assignment_expression) in
    Obj.repr(
# 665 "src/frontc/cparser.mly"
   (BINARY(SUB_ASSIGN, fst _1, fst _3), snd _1)
# 3417 "src/frontc/cparser.ml"
               : 'assignment_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'cast_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'assignment_expression) in
    Obj.repr(
# 667 "src/frontc/cparser.mly"
   (BINARY(MUL_ASSIGN, fst _1, fst _3), snd _1)
# 3425 "src/frontc/cparser.ml"
               : 'assignment_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'cast_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'assignment_expression) in
    Obj.repr(
# 669 "src/frontc/cparser.mly"
   (BINARY(DIV_ASSIGN, fst _1, fst _3), snd _1)
# 3433 "src/frontc/cparser.ml"
               : 'assignment_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'cast_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'assignment_expression) in
    Obj.repr(
# 671 "src/frontc/cparser.mly"
   (BINARY(MOD_ASSIGN, fst _1, fst _3), snd _1)
# 3441 "src/frontc/cparser.ml"
               : 'assignment_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'cast_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'assignment_expression) in
    Obj.repr(
# 673 "src/frontc/cparser.mly"
   (BINARY(BAND_ASSIGN, fst _1, fst _3), snd _1)
# 3449 "src/frontc/cparser.ml"
               : 'assignment_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'cast_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'assignment_expression) in
    Obj.repr(
# 675 "src/frontc/cparser.mly"
   (BINARY(BOR_ASSIGN, fst _1, fst _3), snd _1)
# 3457 "src/frontc/cparser.ml"
               : 'assignment_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'cast_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'assignment_expression) in
    Obj.repr(
# 677 "src/frontc/cparser.mly"
   (BINARY(XOR_ASSIGN, fst _1, fst _3), snd _1)
# 3465 "src/frontc/cparser.ml"
               : 'assignment_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'cast_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'assignment_expression) in
    Obj.repr(
# 679 "src/frontc/cparser.mly"
   (BINARY(SHL_ASSIGN, fst _1, fst _3), snd _1)
# 3473 "src/frontc/cparser.ml"
               : 'assignment_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'cast_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'assignment_expression) in
    Obj.repr(
# 681 "src/frontc/cparser.mly"
   (BINARY(SHR_ASSIGN, fst _1, fst _3), snd _1)
# 3481 "src/frontc/cparser.ml"
               : 'assignment_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'assignment_expression) in
    Obj.repr(
# 686 "src/frontc/cparser.mly"
                        ( _1 )
# 3488 "src/frontc/cparser.ml"
               : Cabs.expression * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 691 "src/frontc/cparser.mly"
               (CONST_INT (fst _1), snd _1)
# 3495 "src/frontc/cparser.ml"
               : Cabs.constant * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 692 "src/frontc/cparser.mly"
                 (CONST_FLOAT (fst _1), snd _1)
# 3502 "src/frontc/cparser.ml"
               : Cabs.constant * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : int64 list * Cabs.cabsloc) in
    Obj.repr(
# 693 "src/frontc/cparser.mly"
                (CONST_CHAR (fst _1), snd _1)
# 3509 "src/frontc/cparser.ml"
               : Cabs.constant * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : int64 list * Cabs.cabsloc) in
    Obj.repr(
# 694 "src/frontc/cparser.mly"
                 (CONST_WCHAR (fst _1), snd _1)
# 3516 "src/frontc/cparser.ml"
               : Cabs.constant * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * cabsloc) in
    Obj.repr(
# 695 "src/frontc/cparser.mly"
                             (CONST_STRING (fst _1), snd _1)
# 3523 "src/frontc/cparser.ml"
               : Cabs.constant * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : int64 list * cabsloc) in
    Obj.repr(
# 696 "src/frontc/cparser.mly"
                   (CONST_WSTRING (fst _1), snd _1)
# 3530 "src/frontc/cparser.ml"
               : Cabs.constant * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : int64 list Queue.t * cabsloc) in
    Obj.repr(
# 702 "src/frontc/cparser.mly"
                                        (
     let queue, location = _1 in
     let buffer = Buffer.create (Queue.length queue) in
     Queue.iter
       (List.iter
	  (fun value ->
	    let char = int64_to_char value in
	    Buffer.add_char buffer char))
       queue;
     Buffer.contents buffer, location
   )
# 3547 "src/frontc/cparser.ml"
               : string * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : int64 list * Cabs.cabsloc) in
    Obj.repr(
# 716 "src/frontc/cparser.mly"
                                        (intlist_to_string (fst _1) )
# 3554 "src/frontc/cparser.ml"
               : 'one_string_constant))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'one_string) in
    Obj.repr(
# 719 "src/frontc/cparser.mly"
                                        (
      let queue = Queue.create () in
      Queue.add (fst _1) queue;
      queue, snd _1
    )
# 3565 "src/frontc/cparser.ml"
               : int64 list Queue.t * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : int64 list Queue.t * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'one_string) in
    Obj.repr(
# 724 "src/frontc/cparser.mly"
                                        (
      Queue.add (fst _2) (fst _1);
      _1
    )
# 3576 "src/frontc/cparser.ml"
               : int64 list Queue.t * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : int64 list * Cabs.cabsloc) in
    Obj.repr(
# 731 "src/frontc/cparser.mly"
                                        ( _1 )
# 3583 "src/frontc/cparser.ml"
               : int64 list * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : int64 list * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'one_string) in
    Obj.repr(
# 732 "src/frontc/cparser.mly"
                                        ( (fst _1) @ (fst _2), snd _1 )
# 3591 "src/frontc/cparser.ml"
               : int64 list * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : int64 list * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : int64 list * Cabs.cabsloc) in
    Obj.repr(
# 733 "src/frontc/cparser.mly"
                                        ( (fst _1) @ (fst _2), snd _1 )
# 3599 "src/frontc/cparser.ml"
               : int64 list * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : int64 list * Cabs.cabsloc) in
    Obj.repr(
# 738 "src/frontc/cparser.mly"
                  (_1)
# 3606 "src/frontc/cparser.ml"
               : 'one_string))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 739 "src/frontc/cparser.mly"
                                        ((Cabs.explodeStringToInts 
					    !currentFunctionName), _1)
# 3614 "src/frontc/cparser.ml"
               : 'one_string))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 741 "src/frontc/cparser.mly"
                                        ((Cabs.explodeStringToInts 
					    !currentFunctionName), _1)
# 3622 "src/frontc/cparser.ml"
               : 'one_string))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.expression * cabsloc) in
    Obj.repr(
# 746 "src/frontc/cparser.mly"
                        ( SINGLE_INIT (fst _1) )
# 3629 "src/frontc/cparser.ml"
               : Cabs.init_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'initializer_list_opt) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 748 "src/frontc/cparser.mly"
   ( COMPOUND_INIT _2)
# 3638 "src/frontc/cparser.ml"
               : Cabs.init_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.initwhat * Cabs.init_expression) in
    Obj.repr(
# 751 "src/frontc/cparser.mly"
                                            ( [_1] )
# 3645 "src/frontc/cparser.ml"
               : (Cabs.initwhat * Cabs.init_expression) list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.initwhat * Cabs.init_expression) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'initializer_list_opt) in
    Obj.repr(
# 752 "src/frontc/cparser.mly"
                                            ( _1 :: _3 )
# 3653 "src/frontc/cparser.ml"
               : (Cabs.initwhat * Cabs.init_expression) list))
; (fun __caml_parser_env ->
    Obj.repr(
# 755 "src/frontc/cparser.mly"
                                            ( [] )
# 3659 "src/frontc/cparser.ml"
               : 'initializer_list_opt))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : (Cabs.initwhat * Cabs.init_expression) list) in
    Obj.repr(
# 756 "src/frontc/cparser.mly"
                                            ( _1 )
# 3666 "src/frontc/cparser.ml"
               : 'initializer_list_opt))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.initwhat) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'eq_opt) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.init_expression) in
    Obj.repr(
# 759 "src/frontc/cparser.mly"
                                            ( (_1, _3) )
# 3675 "src/frontc/cparser.ml"
               : Cabs.initwhat * Cabs.init_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'gcc_init_designators) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.init_expression) in
    Obj.repr(
# 760 "src/frontc/cparser.mly"
                                         ( (_1, _2) )
# 3683 "src/frontc/cparser.ml"
               : Cabs.initwhat * Cabs.init_expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.init_expression) in
    Obj.repr(
# 761 "src/frontc/cparser.mly"
                                        ( (NEXT_INIT, _1) )
# 3690 "src/frontc/cparser.ml"
               : Cabs.initwhat * Cabs.init_expression))
; (fun __caml_parser_env ->
    Obj.repr(
# 764 "src/frontc/cparser.mly"
                             ( () )
# 3696 "src/frontc/cparser.ml"
               : 'eq_opt))
; (fun __caml_parser_env ->
    Obj.repr(
# 766 "src/frontc/cparser.mly"
                                 ( () )
# 3702 "src/frontc/cparser.ml"
               : 'eq_opt))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'id_or_typename) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.initwhat) in
    Obj.repr(
# 769 "src/frontc/cparser.mly"
                                                 ( INFIELD_INIT(_2, _3) )
# 3710 "src/frontc/cparser.ml"
               : Cabs.initwhat))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.expression * cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : Cabs.initwhat) in
    Obj.repr(
# 771 "src/frontc/cparser.mly"
                                        ( ATINDEX_INIT(fst _2, _4) )
# 3718 "src/frontc/cparser.ml"
               : Cabs.initwhat))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 3 : Cabs.expression * cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : Cabs.expression * cabsloc) in
    Obj.repr(
# 773 "src/frontc/cparser.mly"
                                        ( ATINDEXRANGE_INIT(fst _2, fst _4) )
# 3726 "src/frontc/cparser.ml"
               : Cabs.initwhat))
; (fun __caml_parser_env ->
    Obj.repr(
# 776 "src/frontc/cparser.mly"
                                        ( NEXT_INIT )
# 3732 "src/frontc/cparser.ml"
               : Cabs.initwhat))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.initwhat) in
    Obj.repr(
# 777 "src/frontc/cparser.mly"
                                        ( _1 )
# 3739 "src/frontc/cparser.ml"
               : Cabs.initwhat))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'id_or_typename) in
    Obj.repr(
# 781 "src/frontc/cparser.mly"
                                        ( INFIELD_INIT(_1, NEXT_INIT) )
# 3746 "src/frontc/cparser.ml"
               : 'gcc_init_designators))
; (fun __caml_parser_env ->
    Obj.repr(
# 785 "src/frontc/cparser.mly"
                                    ( [] )
# 3752 "src/frontc/cparser.ml"
               : Cabs.expression list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.expression list * cabsloc) in
    Obj.repr(
# 786 "src/frontc/cparser.mly"
                                    ( fst _1 )
# 3759 "src/frontc/cparser.ml"
               : Cabs.expression list))
; (fun __caml_parser_env ->
    Obj.repr(
# 791 "src/frontc/cparser.mly"
          (NOTHING)
# 3765 "src/frontc/cparser.ml"
               : Cabs.expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.expression list * cabsloc) in
    Obj.repr(
# 793 "src/frontc/cparser.mly"
          (smooth_expression (fst _1))
# 3772 "src/frontc/cparser.ml"
               : Cabs.expression))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.expression * cabsloc) in
    Obj.repr(
# 797 "src/frontc/cparser.mly"
                                           ([fst _1], snd _1)
# 3779 "src/frontc/cparser.ml"
               : Cabs.expression list * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.expression * cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.expression list * cabsloc) in
    Obj.repr(
# 798 "src/frontc/cparser.mly"
                                                  ( fst _1 :: fst _3, snd _1 )
# 3787 "src/frontc/cparser.ml"
               : Cabs.expression list * cabsloc))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.expression list * cabsloc) in
    Obj.repr(
# 799 "src/frontc/cparser.mly"
                                                  ( _3 )
# 3794 "src/frontc/cparser.ml"
               : Cabs.expression list * cabsloc))
; (fun __caml_parser_env ->
    Obj.repr(
# 803 "src/frontc/cparser.mly"
                                    ( NOTHING )
# 3800 "src/frontc/cparser.ml"
               : 'comma_expression_opt))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.expression list * cabsloc) in
    Obj.repr(
# 804 "src/frontc/cparser.mly"
                                    ( smooth_expression (fst _1) )
# 3807 "src/frontc/cparser.ml"
               : 'comma_expression_opt))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.expression list * cabsloc) in
    Obj.repr(
# 808 "src/frontc/cparser.mly"
                                                   ( _2 )
# 3815 "src/frontc/cparser.ml"
               : Cabs.expression list * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    Obj.repr(
# 809 "src/frontc/cparser.mly"
                                                   ( [], _1 )
# 3822 "src/frontc/cparser.ml"
               : Cabs.expression list * cabsloc))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.expression list * cabsloc) in
    Obj.repr(
# 813 "src/frontc/cparser.mly"
                                                       ( fst _2 )
# 3829 "src/frontc/cparser.ml"
               : Cabs.expression list))
; (fun __caml_parser_env ->
    Obj.repr(
# 814 "src/frontc/cparser.mly"
                                                       ( [] )
# 3835 "src/frontc/cparser.ml"
               : Cabs.expression list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : 'block_begin) in
    let _2 = (Parsing.peek_val __caml_parser_env 3 : string list) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : 'block_attrs) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : Cabs.statement list) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 821 "src/frontc/cparser.mly"
                                         (!Lexerhack.pop_context();
                                          { blabels = _2;
                                            battrs = _3;
                                            bstmts = _4 },
					    _1, _5
                                         )
# 3851 "src/frontc/cparser.ml"
               : Cabs.block * cabsloc * cabsloc))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 827 "src/frontc/cparser.mly"
                                         ( { blabels = [];
                                             battrs  = [];
                                             bstmts  = [] },
					     _2, _3
                                         )
# 3863 "src/frontc/cparser.ml"
               : Cabs.block * cabsloc * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 834 "src/frontc/cparser.mly"
                           (!Lexerhack.push_context (); _1)
# 3870 "src/frontc/cparser.ml"
               : 'block_begin))
; (fun __caml_parser_env ->
    Obj.repr(
# 838 "src/frontc/cparser.mly"
                                                            ( [] )
# 3876 "src/frontc/cparser.ml"
               : 'block_attrs))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'paren_attr_list_ne) in
    Obj.repr(
# 840 "src/frontc/cparser.mly"
                                        ( [("__blockattribute__", _2)] )
# 3883 "src/frontc/cparser.ml"
               : 'block_attrs))
; (fun __caml_parser_env ->
    Obj.repr(
# 845 "src/frontc/cparser.mly"
                                         ( [] )
# 3889 "src/frontc/cparser.ml"
               : Cabs.statement list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.definition) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.statement list) in
    Obj.repr(
# 846 "src/frontc/cparser.mly"
                                         ( DEFINITION(_1) :: _2 )
# 3897 "src/frontc/cparser.ml"
               : Cabs.statement list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.statement) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.statement list) in
    Obj.repr(
# 847 "src/frontc/cparser.mly"
                                         ( _1 :: _2 )
# 3905 "src/frontc/cparser.ml"
               : Cabs.statement list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : string * Cabs.cabsloc) in
    Obj.repr(
# 849 "src/frontc/cparser.mly"
                                         ( [ LABEL (fst _1, NOP (snd _1), 
                                                    snd _1)] )
# 3913 "src/frontc/cparser.ml"
               : Cabs.statement list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'pragma) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.statement list) in
    Obj.repr(
# 851 "src/frontc/cparser.mly"
                                         ( _2 )
# 3921 "src/frontc/cparser.ml"
               : Cabs.statement list))
; (fun __caml_parser_env ->
    Obj.repr(
# 855 "src/frontc/cparser.mly"
                                                     ( [] )
# 3927 "src/frontc/cparser.ml"
               : string list))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 2 : string list) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : string list) in
    Obj.repr(
# 856 "src/frontc/cparser.mly"
                                                     ( _2 @ _4 )
# 3936 "src/frontc/cparser.ml"
               : string list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 859 "src/frontc/cparser.mly"
                                         ( [ fst _1 ] )
# 3943 "src/frontc/cparser.ml"
               : string list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : string * Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : string list) in
    Obj.repr(
# 860 "src/frontc/cparser.mly"
                                         ( fst _1 :: _3 )
# 3951 "src/frontc/cparser.ml"
               : string list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 866 "src/frontc/cparser.mly"
               (NOP ((*handleLoc*) _1) )
# 3958 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.expression list * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 868 "src/frontc/cparser.mly"
          (COMPUTATION (smooth_expression (fst _1), (*handleLoc*)(snd _1)))
# 3966 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.block * cabsloc * cabsloc) in
    Obj.repr(
# 869 "src/frontc/cparser.mly"
                        (BLOCK (fst3 _1, (*handleLoc*)(snd3 _1)))
# 3973 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.expression list * cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.statement) in
    Obj.repr(
# 871 "src/frontc/cparser.mly"
                 (IF (smooth_expression (fst _2), _3, NOP _1, _1))
# 3982 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 3 : Cabs.expression list * cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : Cabs.statement) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : Cabs.statement) in
    Obj.repr(
# 873 "src/frontc/cparser.mly"
                 (IF (smooth_expression (fst _2), _3, _5, (*handleLoc*) _1))
# 3992 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.expression list * cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.statement) in
    Obj.repr(
# 875 "src/frontc/cparser.mly"
                        (SWITCH (smooth_expression (fst _2), _3, (*handleLoc*) _1))
# 4001 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.expression list * cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.statement) in
    Obj.repr(
# 877 "src/frontc/cparser.mly"
          (WHILE (smooth_expression (fst _2), _3, (*handleLoc*) _1))
# 4010 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 3 : Cabs.statement) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : Cabs.expression list * cabsloc) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 879 "src/frontc/cparser.mly"
                   (DOWHILE (smooth_expression (fst _4), _2, (*handleLoc*) _1))
# 4021 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 7 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 6 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 5 : 'for_clause) in
    let _4 = (Parsing.peek_val __caml_parser_env 4 : Cabs.expression) in
    let _5 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _6 = (Parsing.peek_val __caml_parser_env 2 : Cabs.expression) in
    let _8 = (Parsing.peek_val __caml_parser_env 0 : Cabs.statement) in
    Obj.repr(
# 882 "src/frontc/cparser.mly"
                          (FOR (_3, _4, _6, _8, (*handleLoc*) _1))
# 4034 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : string * Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.statement) in
    Obj.repr(
# 884 "src/frontc/cparser.mly"
                   (LABEL (fst _1, _3, (*handleLoc*) (snd _1)))
# 4042 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.expression * cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : Cabs.statement) in
    Obj.repr(
# 886 "src/frontc/cparser.mly"
                          (CASE (fst _2, _4, (*handleLoc*) _1))
# 4051 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 5 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 4 : Cabs.expression * cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 2 : Cabs.expression * cabsloc) in
    let _6 = (Parsing.peek_val __caml_parser_env 0 : Cabs.statement) in
    Obj.repr(
# 888 "src/frontc/cparser.mly"
                          (CASERANGE (fst _2, fst _4, _6, (*handleLoc*) _1))
# 4061 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    Obj.repr(
# 890 "src/frontc/cparser.mly"
                          (DEFAULT (NOP _1, (*handleLoc*) _1))
# 4068 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 891 "src/frontc/cparser.mly"
                       (RETURN (NOTHING, (*handleLoc*) _1))
# 4076 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.expression list * cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 893 "src/frontc/cparser.mly"
                          (RETURN (smooth_expression (fst _2), (*handleLoc*) _1))
# 4085 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 894 "src/frontc/cparser.mly"
                        (BREAK ((*handleLoc*) _1))
# 4093 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 895 "src/frontc/cparser.mly"
                        (CONTINUE ((*handleLoc*) _1))
# 4101 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : string * Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 897 "src/frontc/cparser.mly"
                   (GOTO (fst _2, (*handleLoc*) _1))
# 4110 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.expression list * cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 899 "src/frontc/cparser.mly"
                                 ( COMPGOTO (smooth_expression (fst _3), (*handleLoc*) _1) )
# 4120 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 6 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 5 : Cabs.attribute list) in
    let _3 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 3 : 'asmtemplate) in
    let _5 = (Parsing.peek_val __caml_parser_env 2 : 'asmoutputs) in
    let _7 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 901 "src/frontc/cparser.mly"
                        ( ASM (_2, _4, _5, (*handleLoc*) _1) )
# 4132 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 902 "src/frontc/cparser.mly"
                        ( ASM ([], [fst _1], None, (*handleLoc*)(snd _1)))
# 4139 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 3 : Cabs.block * cabsloc * cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : Cabs.expression list * cabsloc) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : Cabs.block * cabsloc * cabsloc) in
    Obj.repr(
# 904 "src/frontc/cparser.mly"
                        ( let b, _, _ = _2 in
                          let h, _, _ = _5 in
                          if not !Cprint.msvcMode then 
                            parse_error "try/except in GCC code";
                          TRY_EXCEPT (b, COMMA (fst _4), h, (*handleLoc*) _1) )
# 4154 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.block * cabsloc * cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : Cabs.block * cabsloc * cabsloc) in
    Obj.repr(
# 910 "src/frontc/cparser.mly"
                        ( let b, _, _ = _2 in
                          let h, _, _ = _4 in
                          if not !Cprint.msvcMode then 
                            parse_error "try/finally in GCC code";
                          TRY_FINALLY (b, h, (*handleLoc*) _1) )
# 4168 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 916 "src/frontc/cparser.mly"
                                 ( (NOP _2))
# 4176 "src/frontc/cparser.ml"
               : Cabs.statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.expression) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 921 "src/frontc/cparser.mly"
                                 ( FC_EXP _1 )
# 4184 "src/frontc/cparser.ml"
               : 'for_clause))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.definition) in
    Obj.repr(
# 922 "src/frontc/cparser.mly"
                                 ( FC_DECL _1 )
# 4191 "src/frontc/cparser.ml"
               : 'for_clause))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : spec_elem list * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.init_name list) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 927 "src/frontc/cparser.mly"
                                       ( doDeclaration ((*handleLoc*)(snd _1)) (fst _1) _2 )
# 4200 "src/frontc/cparser.ml"
               : Cabs.definition))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : spec_elem list * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 929 "src/frontc/cparser.mly"
                                       ( doDeclaration ((*handleLoc*)(snd _1)) (fst _1) [] )
# 4208 "src/frontc/cparser.ml"
               : Cabs.definition))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.init_name) in
    Obj.repr(
# 932 "src/frontc/cparser.mly"
                                                 ( [_1] )
# 4215 "src/frontc/cparser.ml"
               : Cabs.init_name list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.init_name) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.init_name list) in
    Obj.repr(
# 933 "src/frontc/cparser.mly"
                                                 ( _1 :: _3 )
# 4223 "src/frontc/cparser.ml"
               : Cabs.init_name list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.name) in
    Obj.repr(
# 937 "src/frontc/cparser.mly"
                                        ( (_1, NO_INIT) )
# 4230 "src/frontc/cparser.ml"
               : Cabs.init_name))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.name) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.init_expression) in
    Obj.repr(
# 939 "src/frontc/cparser.mly"
                                        ( (_1, _3) )
# 4238 "src/frontc/cparser.ml"
               : Cabs.init_name))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'decl_spec_list_opt) in
    Obj.repr(
# 944 "src/frontc/cparser.mly"
                                        ( SpecTypedef :: _2, _1  )
# 4246 "src/frontc/cparser.ml"
               : spec_elem list * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'decl_spec_list_opt) in
    Obj.repr(
# 945 "src/frontc/cparser.mly"
                                        ( SpecStorage EXTERN :: _2, _1 )
# 4254 "src/frontc/cparser.ml"
               : spec_elem list * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'decl_spec_list_opt) in
    Obj.repr(
# 946 "src/frontc/cparser.mly"
                                        ( SpecStorage STATIC :: _2, _1 )
# 4262 "src/frontc/cparser.ml"
               : spec_elem list * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'decl_spec_list_opt) in
    Obj.repr(
# 947 "src/frontc/cparser.mly"
                                        ( SpecStorage AUTO :: _2, _1 )
# 4270 "src/frontc/cparser.ml"
               : spec_elem list * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'decl_spec_list_opt) in
    Obj.repr(
# 948 "src/frontc/cparser.mly"
                                        ( SpecStorage REGISTER :: _2, _1)
# 4278 "src/frontc/cparser.ml"
               : spec_elem list * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : typeSpecifier * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'decl_spec_list_opt_no_named) in
    Obj.repr(
# 950 "src/frontc/cparser.mly"
                                          ( SpecType (fst _1) :: _2, snd _1 )
# 4286 "src/frontc/cparser.ml"
               : spec_elem list * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'decl_spec_list_opt) in
    Obj.repr(
# 952 "src/frontc/cparser.mly"
                                        ( SpecInline :: _2, _1 )
# 4294 "src/frontc/cparser.ml"
               : spec_elem list * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.spec_elem * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'decl_spec_list_opt) in
    Obj.repr(
# 953 "src/frontc/cparser.mly"
                                        ( (fst _1) :: _2, snd _1 )
# 4302 "src/frontc/cparser.ml"
               : spec_elem list * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'attribute_nocv) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'decl_spec_list_opt) in
    Obj.repr(
# 954 "src/frontc/cparser.mly"
                                        ( SpecAttr (fst _1) :: _2, snd _1 )
# 4310 "src/frontc/cparser.ml"
               : spec_elem list * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : string * Cabs.cabsloc) in
    Obj.repr(
# 956 "src/frontc/cparser.mly"
                                        ( [ SpecPattern(fst _3) ], _1 )
# 4319 "src/frontc/cparser.ml"
               : spec_elem list * cabsloc))
; (fun __caml_parser_env ->
    Obj.repr(
# 961 "src/frontc/cparser.mly"
                                        ( [] )
# 4325 "src/frontc/cparser.ml"
               : 'decl_spec_list_opt))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : spec_elem list * cabsloc) in
    Obj.repr(
# 962 "src/frontc/cparser.mly"
                                        ( fst _1 )
# 4332 "src/frontc/cparser.ml"
               : 'decl_spec_list_opt))
; (fun __caml_parser_env ->
    Obj.repr(
# 969 "src/frontc/cparser.mly"
                                        ( [] )
# 4338 "src/frontc/cparser.ml"
               : 'decl_spec_list_opt_no_named))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : spec_elem list * cabsloc) in
    Obj.repr(
# 970 "src/frontc/cparser.mly"
                                        ( fst _1 )
# 4345 "src/frontc/cparser.ml"
               : 'decl_spec_list_opt_no_named))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 973 "src/frontc/cparser.mly"
                    ( Tvoid, _1)
# 4352 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 974 "src/frontc/cparser.mly"
                    ( Tchar, _1 )
# 4359 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 975 "src/frontc/cparser.mly"
                    ( Tshort, _1 )
# 4366 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 976 "src/frontc/cparser.mly"
                    ( Tint, _1 )
# 4373 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 977 "src/frontc/cparser.mly"
                    ( Tlong, _1 )
# 4380 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 978 "src/frontc/cparser.mly"
                    ( Tint64, _1 )
# 4387 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 979 "src/frontc/cparser.mly"
                    ( Tfloat, _1 )
# 4394 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 980 "src/frontc/cparser.mly"
                    ( Tdouble, _1 )
# 4401 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 981 "src/frontc/cparser.mly"
                    ( Tsigned, _1 )
# 4408 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 982 "src/frontc/cparser.mly"
                    ( Tunsigned, _1 )
# 4415 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'id_or_typename) in
    Obj.repr(
# 984 "src/frontc/cparser.mly"
                                                   ( Tstruct (_2, None,    []), _1 )
# 4423 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'just_attributes) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'id_or_typename) in
    Obj.repr(
# 986 "src/frontc/cparser.mly"
                                                   ( Tstruct (_3, None,    _2), _1 )
# 4432 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 3 : 'id_or_typename) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : Cabs.field_group list) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 988 "src/frontc/cparser.mly"
                                                   ( Tstruct (_2, Some _4, []), _1 )
# 4443 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.field_group list) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 990 "src/frontc/cparser.mly"
                                                   ( Tstruct ("", Some _3, []), _1 )
# 4453 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 5 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 4 : 'just_attributes) in
    let _3 = (Parsing.peek_val __caml_parser_env 3 : 'id_or_typename) in
    let _4 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 : Cabs.field_group list) in
    let _6 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 992 "src/frontc/cparser.mly"
                                                   ( Tstruct (_3, Some _5, _2), _1 )
# 4465 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 3 : 'just_attributes) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : Cabs.field_group list) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 994 "src/frontc/cparser.mly"
                                                   ( Tstruct ("", Some _4, _2), _1 )
# 4476 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'id_or_typename) in
    Obj.repr(
# 996 "src/frontc/cparser.mly"
                                                   ( Tunion  (_2, None,    []), _1 )
# 4484 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 3 : 'id_or_typename) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : Cabs.field_group list) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 998 "src/frontc/cparser.mly"
                                                   ( Tunion  (_2, Some _4, []), _1 )
# 4495 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.field_group list) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 1000 "src/frontc/cparser.mly"
                                                   ( Tunion  ("", Some _3, []), _1 )
# 4505 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 5 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 4 : 'just_attributes) in
    let _3 = (Parsing.peek_val __caml_parser_env 3 : 'id_or_typename) in
    let _4 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 : Cabs.field_group list) in
    let _6 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 1002 "src/frontc/cparser.mly"
                                                   ( Tunion  (_3, Some _5, _2), _1 )
# 4517 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 3 : 'just_attributes) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : Cabs.field_group list) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 1004 "src/frontc/cparser.mly"
                                                   ( Tunion  ("", Some _4, _2), _1 )
# 4528 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'id_or_typename) in
    Obj.repr(
# 1006 "src/frontc/cparser.mly"
                                                   ( Tenum   (_2, None,    []), _1 )
# 4536 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 5 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 4 : 'id_or_typename) in
    let _3 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 2 : Cabs.enum_item list) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 : 'maybecomma) in
    let _6 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 1008 "src/frontc/cparser.mly"
                                                   ( Tenum   (_2, Some _4, []), _1 )
# 4548 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : Cabs.enum_item list) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : 'maybecomma) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 1010 "src/frontc/cparser.mly"
                                                   ( Tenum   ("", Some _3, []), _1 )
# 4559 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 6 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 5 : 'just_attributes) in
    let _3 = (Parsing.peek_val __caml_parser_env 4 : 'id_or_typename) in
    let _4 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _5 = (Parsing.peek_val __caml_parser_env 2 : Cabs.enum_item list) in
    let _6 = (Parsing.peek_val __caml_parser_env 1 : 'maybecomma) in
    let _7 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 1012 "src/frontc/cparser.mly"
                                                   ( Tenum   (_3, Some _5, _2), _1 )
# 4572 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 5 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 4 : 'just_attributes) in
    let _3 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 2 : Cabs.enum_item list) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 : 'maybecomma) in
    let _6 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 1014 "src/frontc/cparser.mly"
                                                   ( Tenum   ("", Some _4, _2), _1 )
# 4584 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 1015 "src/frontc/cparser.mly"
                    ( Tnamed (fst _1), snd _1 )
# 4591 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.expression * cabsloc) in
    Obj.repr(
# 1016 "src/frontc/cparser.mly"
                                        ( TtypeofE (fst _3), _1 )
# 4600 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.spec_elem list * Cabs.decl_type) in
    Obj.repr(
# 1017 "src/frontc/cparser.mly"
                                        ( let s, d = _3 in
                                          TtypeofT (s, d), _1 )
# 4610 "src/frontc/cparser.ml"
               : typeSpecifier * cabsloc))
; (fun __caml_parser_env ->
    Obj.repr(
# 1023 "src/frontc/cparser.mly"
                                         ( [] )
# 4616 "src/frontc/cparser.ml"
               : Cabs.field_group list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : spec_elem list * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.field_group list) in
    Obj.repr(
# 1025 "src/frontc/cparser.mly"
                                         ( (fst _1, 
                                            [(missingFieldDecl, None)]) :: _3 )
# 4626 "src/frontc/cparser.ml"
               : Cabs.field_group list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.field_group list) in
    Obj.repr(
# 1029 "src/frontc/cparser.mly"
                                         ( _2 )
# 4634 "src/frontc/cparser.ml"
               : Cabs.field_group list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : spec_elem list * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : (Cabs.name * expression option) list) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : Cabs.field_group list) in
    Obj.repr(
# 1031 "src/frontc/cparser.mly"
                                          ( (fst _1, _2) 
                                            :: _4 )
# 4645 "src/frontc/cparser.ml"
               : Cabs.field_group list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'pragma) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.field_group list) in
    Obj.repr(
# 1034 "src/frontc/cparser.mly"
                                          ( _2 )
# 4653 "src/frontc/cparser.ml"
               : Cabs.field_group list))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.field_group list) in
    Obj.repr(
# 1037 "src/frontc/cparser.mly"
                                          ( _3 )
# 4661 "src/frontc/cparser.ml"
               : Cabs.field_group list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.name * expression option) in
    Obj.repr(
# 1040 "src/frontc/cparser.mly"
                                         ( [_1] )
# 4668 "src/frontc/cparser.ml"
               : (Cabs.name * expression option) list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.name * expression option) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : (Cabs.name * expression option) list) in
    Obj.repr(
# 1041 "src/frontc/cparser.mly"
                                         ( _1 :: _3 )
# 4676 "src/frontc/cparser.ml"
               : (Cabs.name * expression option) list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.name) in
    Obj.repr(
# 1044 "src/frontc/cparser.mly"
                                    ( (_1, None) )
# 4683 "src/frontc/cparser.ml"
               : Cabs.name * expression option))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.name) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.expression * cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : Cabs.attribute list) in
    Obj.repr(
# 1046 "src/frontc/cparser.mly"
                                    ( let (n,decl,al,loc) = _1 in
                                      let al' = al @ _4 in
                                     ((n,decl,al',loc), Some (fst _3)) )
# 4694 "src/frontc/cparser.ml"
               : Cabs.name * expression option))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.expression * cabsloc) in
    Obj.repr(
# 1049 "src/frontc/cparser.mly"
                                    ( (missingFieldDecl, Some (fst _2)) )
# 4701 "src/frontc/cparser.ml"
               : Cabs.name * expression option))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.enum_item) in
    Obj.repr(
# 1053 "src/frontc/cparser.mly"
                  ([_1])
# 4708 "src/frontc/cparser.ml"
               : Cabs.enum_item list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.enum_item list) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.enum_item) in
    Obj.repr(
# 1054 "src/frontc/cparser.mly"
                                       (_1 @ [_3])
# 4716 "src/frontc/cparser.ml"
               : Cabs.enum_item list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.enum_item list) in
    Obj.repr(
# 1055 "src/frontc/cparser.mly"
                                        ( _1 )
# 4723 "src/frontc/cparser.ml"
               : Cabs.enum_item list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 1058 "src/frontc/cparser.mly"
            ((fst _1, NOTHING, snd _1))
# 4730 "src/frontc/cparser.ml"
               : Cabs.enum_item))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : string * Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.expression * cabsloc) in
    Obj.repr(
# 1059 "src/frontc/cparser.mly"
                         ((fst _1, fst _3, snd _1))
# 4738 "src/frontc/cparser.ml"
               : Cabs.enum_item))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : attribute list list * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : string * Cabs.decl_type) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.attribute list) in
    Obj.repr(
# 1065 "src/frontc/cparser.mly"
                               ( let (n, decl) = _2 in
                                (n, applyPointer (fst _1) decl, _3, (snd _1)) )
# 4748 "src/frontc/cparser.ml"
               : Cabs.name))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'id_or_typename) in
    Obj.repr(
# 1073 "src/frontc/cparser.mly"
                                   ( (_1, JUSTBASE) )
# 4755 "src/frontc/cparser.ml"
               : string * Cabs.decl_type))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.attribute list) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.name) in
    Obj.repr(
# 1076 "src/frontc/cparser.mly"
                                   ( let (n,decl,al,loc) = _3 in
                                     (n, PARENTYPE(_2,decl,al)) )
# 4765 "src/frontc/cparser.ml"
               : string * Cabs.decl_type))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : string * Cabs.decl_type) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : Cabs.attribute list) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : 'comma_expression_opt) in
    Obj.repr(
# 1080 "src/frontc/cparser.mly"
                                   ( let (n, decl) = _1 in
                                     (n, ARRAY(decl, _3, _4)) )
# 4775 "src/frontc/cparser.ml"
               : string * Cabs.decl_type))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : string * Cabs.decl_type) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : Cabs.attribute list) in
    Obj.repr(
# 1083 "src/frontc/cparser.mly"
                                   ( let (n, decl) = _1 in
                                     (n, ARRAY(decl, _3, NOTHING)) )
# 4784 "src/frontc/cparser.ml"
               : string * Cabs.decl_type))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : string * Cabs.decl_type) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : 'parameter_list_startscope) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'rest_par_list) in
    Obj.repr(
# 1086 "src/frontc/cparser.mly"
                                   ( let (n, decl) = _1 in
                                     let (params, isva) = _3 in
                                     !Lexerhack.pop_context ();
                                     (n, PROTO(decl, params, isva))
                                   )
# 4797 "src/frontc/cparser.ml"
               : string * Cabs.decl_type))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 1093 "src/frontc/cparser.mly"
                                   ( !Lexerhack.push_context () )
# 4804 "src/frontc/cparser.ml"
               : 'parameter_list_startscope))
; (fun __caml_parser_env ->
    Obj.repr(
# 1096 "src/frontc/cparser.mly"
                                   ( ([], false) )
# 4810 "src/frontc/cparser.ml"
               : 'rest_par_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.single_name) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'rest_par_list1) in
    Obj.repr(
# 1097 "src/frontc/cparser.mly"
                                   ( let (params, isva) = _2 in 
                                     (_1 :: params, isva) 
                                   )
# 4820 "src/frontc/cparser.ml"
               : 'rest_par_list))
; (fun __caml_parser_env ->
    Obj.repr(
# 1102 "src/frontc/cparser.mly"
                                        ( ([], false) )
# 4826 "src/frontc/cparser.ml"
               : 'rest_par_list1))
; (fun __caml_parser_env ->
    Obj.repr(
# 1103 "src/frontc/cparser.mly"
                                        ( ([], true) )
# 4832 "src/frontc/cparser.ml"
               : 'rest_par_list1))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.single_name) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'rest_par_list1) in
    Obj.repr(
# 1104 "src/frontc/cparser.mly"
                                        ( let (params, isva) = _3 in 
                                          (_2 :: params, isva)
                                        )
# 4842 "src/frontc/cparser.ml"
               : 'rest_par_list1))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : spec_elem list * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.name) in
    Obj.repr(
# 1111 "src/frontc/cparser.mly"
                                          ( (fst _1, _2) )
# 4850 "src/frontc/cparser.ml"
               : Cabs.single_name))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : spec_elem list * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.decl_type * Cabs.attribute list) in
    Obj.repr(
# 1112 "src/frontc/cparser.mly"
                                          ( let d, a = _2 in
                                            (fst _1, ("", d, a, cabslu)) )
# 4859 "src/frontc/cparser.ml"
               : Cabs.single_name))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : spec_elem list * cabsloc) in
    Obj.repr(
# 1114 "src/frontc/cparser.mly"
                                          ( (fst _1, ("", JUSTBASE, [], cabslu)) )
# 4866 "src/frontc/cparser.ml"
               : Cabs.single_name))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.single_name) in
    Obj.repr(
# 1115 "src/frontc/cparser.mly"
                                          ( _2 )
# 4874 "src/frontc/cparser.ml"
               : Cabs.single_name))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : attribute list list * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'direct_old_proto_decl) in
    Obj.repr(
# 1120 "src/frontc/cparser.mly"
                                      ( let (n, decl, a) = _2 in
					  (n, applyPointer (fst _1) decl, 
                                           a, snd _1) 
                                      )
# 4885 "src/frontc/cparser.ml"
               : Cabs.name))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : string * Cabs.decl_type) in
    let _2 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : string list) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : 'old_pardef_list) in
    Obj.repr(
# 1129 "src/frontc/cparser.mly"
                                   ( let par_decl, isva = doOldParDecl _3 _5 in
                                     let n, decl = _1 in
                                     (n, PROTO(decl, par_decl, isva), [])
                                   )
# 4898 "src/frontc/cparser.ml"
               : 'direct_old_proto_decl))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : string * Cabs.decl_type) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    Obj.repr(
# 1134 "src/frontc/cparser.mly"
                                   ( let n, decl = _1 in
                                     (n, PROTO(decl, [], false), [])
                                   )
# 4908 "src/frontc/cparser.ml"
               : 'direct_old_proto_decl))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 1149 "src/frontc/cparser.mly"
                                               ( [fst _1] )
# 4915 "src/frontc/cparser.ml"
               : string list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : string * Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : string list) in
    Obj.repr(
# 1150 "src/frontc/cparser.mly"
                                               ( let rest = _3 in
                                                 (fst _1 :: rest) )
# 4924 "src/frontc/cparser.ml"
               : string list))
; (fun __caml_parser_env ->
    Obj.repr(
# 1155 "src/frontc/cparser.mly"
                                          ( ([], false) )
# 4930 "src/frontc/cparser.ml"
               : 'old_pardef_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : spec_elem list * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : 'old_pardef) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    Obj.repr(
# 1157 "src/frontc/cparser.mly"
                                          ( ([(fst _1, _2)], true) )
# 4939 "src/frontc/cparser.ml"
               : 'old_pardef_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : spec_elem list * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : 'old_pardef) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : 'old_pardef_list) in
    Obj.repr(
# 1159 "src/frontc/cparser.mly"
                                          ( let rest, isva = _4 in
                                            ((fst _1, _2) :: rest, isva) 
                                          )
# 4951 "src/frontc/cparser.ml"
               : 'old_pardef_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.name) in
    Obj.repr(
# 1165 "src/frontc/cparser.mly"
                                          ( [_1] )
# 4958 "src/frontc/cparser.ml"
               : 'old_pardef))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.name) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'old_pardef) in
    Obj.repr(
# 1166 "src/frontc/cparser.mly"
                                          ( _1 :: _3 )
# 4966 "src/frontc/cparser.ml"
               : 'old_pardef))
; (fun __caml_parser_env ->
    Obj.repr(
# 1167 "src/frontc/cparser.mly"
                                          ( [] )
# 4972 "src/frontc/cparser.ml"
               : 'old_pardef))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.attribute list) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : attribute list list * cabsloc) in
    Obj.repr(
# 1172 "src/frontc/cparser.mly"
                                ( _2 :: fst _3, _1 )
# 4981 "src/frontc/cparser.ml"
               : attribute list list * cabsloc))
; (fun __caml_parser_env ->
    Obj.repr(
# 1175 "src/frontc/cparser.mly"
                                 ( let l = currentLoc () in
                                   ([], l) )
# 4988 "src/frontc/cparser.ml"
               : attribute list list * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : attribute list list * cabsloc) in
    Obj.repr(
# 1177 "src/frontc/cparser.mly"
                                 ( _1 )
# 4995 "src/frontc/cparser.ml"
               : attribute list list * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : spec_elem list * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.decl_type * Cabs.attribute list) in
    Obj.repr(
# 1181 "src/frontc/cparser.mly"
                               ( let d, a = _2 in
                                 if a <> [] then begin
                                   parse_error "attributes in type name";
                                   raise Parsing.Parse_error
                                 end;
                                 (fst _1, d) 
                               )
# 5009 "src/frontc/cparser.ml"
               : Cabs.spec_elem list * Cabs.decl_type))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : spec_elem list * cabsloc) in
    Obj.repr(
# 1188 "src/frontc/cparser.mly"
                               ( (fst _1, JUSTBASE) )
# 5016 "src/frontc/cparser.ml"
               : Cabs.spec_elem list * Cabs.decl_type))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : attribute list list * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.decl_type) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : Cabs.attribute list) in
    Obj.repr(
# 1191 "src/frontc/cparser.mly"
                                          ( applyPointer (fst _1) _2, _3 )
# 5025 "src/frontc/cparser.ml"
               : Cabs.decl_type * Cabs.attribute list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : attribute list list * cabsloc) in
    Obj.repr(
# 1192 "src/frontc/cparser.mly"
                                          ( applyPointer (fst _1) JUSTBASE, [] )
# 5032 "src/frontc/cparser.ml"
               : Cabs.decl_type * Cabs.attribute list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.attribute list) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.decl_type * Cabs.attribute list) in
    Obj.repr(
# 1199 "src/frontc/cparser.mly"
                                   ( let d, a = _3 in
                                     PARENTYPE (_2, d, a)
                                   )
# 5043 "src/frontc/cparser.ml"
               : Cabs.decl_type))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    Obj.repr(
# 1204 "src/frontc/cparser.mly"
                                   ( JUSTBASE )
# 5050 "src/frontc/cparser.ml"
               : Cabs.decl_type))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.decl_type) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'comma_expression_opt) in
    Obj.repr(
# 1207 "src/frontc/cparser.mly"
                                   ( ARRAY(_1, [], _3) )
# 5058 "src/frontc/cparser.ml"
               : Cabs.decl_type))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.decl_type) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : 'parameter_list_startscope) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'rest_par_list) in
    Obj.repr(
# 1210 "src/frontc/cparser.mly"
                                   ( let (params, isva) = _3 in
                                     !Lexerhack.pop_context ();
                                     PROTO (_1, params, isva)
                                   )
# 5070 "src/frontc/cparser.ml"
               : Cabs.decl_type))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.decl_type) in
    Obj.repr(
# 1216 "src/frontc/cparser.mly"
                                    ( _1 )
# 5077 "src/frontc/cparser.ml"
               : Cabs.decl_type))
; (fun __caml_parser_env ->
    Obj.repr(
# 1217 "src/frontc/cparser.mly"
                                    ( JUSTBASE )
# 5083 "src/frontc/cparser.ml"
               : Cabs.decl_type))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : cabsloc * spec_elem list * name) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.block * cabsloc * cabsloc) in
    Obj.repr(
# 1221 "src/frontc/cparser.mly"
          ( let (loc, specs, decl) = _1 in
            currentFunctionName := "<__FUNCTION__ used outside any functions>";
            !Lexerhack.pop_context (); (* The context pushed by 
                                    * announceFunctionName *)
            doFunctionDef ((*handleLoc*) loc) (trd3 _2) specs decl (fst3 _2)
          )
# 5096 "src/frontc/cparser.ml"
               : Cabs.definition))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : spec_elem list * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.name) in
    Obj.repr(
# 1231 "src/frontc/cparser.mly"
                            ( announceFunctionName _2;
                              (snd _1, fst _1, _2)
                            )
# 5106 "src/frontc/cparser.ml"
               : cabsloc * spec_elem list * name))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : spec_elem list * cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.name) in
    Obj.repr(
# 1237 "src/frontc/cparser.mly"
                            ( announceFunctionName _2;
                              (snd _1, fst _1, _2)
                            )
# 5116 "src/frontc/cparser.ml"
               : cabsloc * spec_elem list * name))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : string * Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : 'parameter_list_startscope) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'rest_par_list) in
    Obj.repr(
# 1242 "src/frontc/cparser.mly"
                           ( let (params, isva) = _3 in
                             let fdec = 
                               (fst _1, PROTO(JUSTBASE, params, isva), [], snd _1) in
                             announceFunctionName fdec;
                             (* Default is int type *)
                             let defSpec = [SpecType Tint] in
                             (snd _1, defSpec, fdec)
                           )
# 5132 "src/frontc/cparser.ml"
               : cabsloc * spec_elem list * name))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : string * Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : string list) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : 'old_pardef_list) in
    Obj.repr(
# 1253 "src/frontc/cparser.mly"
                           ( (* Convert pardecl to new style *)
                             let pardecl, isva = doOldParDecl _3 _5 in
                             (* Make the function declarator *)
                             let fdec = (fst _1,
                                         PROTO(JUSTBASE, pardecl,isva), 
                                         [], snd _1) in
                             announceFunctionName fdec;
                             (* Default is int type *)
                             let defSpec = [SpecType Tint] in
                             (snd _1, defSpec, fdec) 
                            )
# 5152 "src/frontc/cparser.ml"
               : cabsloc * spec_elem list * name))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : string * Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    Obj.repr(
# 1266 "src/frontc/cparser.mly"
                           ( (* Make the function declarator *)
                             let fdec = (fst _1,
                                         PROTO(JUSTBASE, [], false), 
                                         [], snd _1) in
                             announceFunctionName fdec;
                             (* Default is int type *)
                             let defSpec = [SpecType Tint] in
                             (snd _1, defSpec, fdec)
                            )
# 5168 "src/frontc/cparser.ml"
               : cabsloc * spec_elem list * name))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 1279 "src/frontc/cparser.mly"
                                        ( SpecCV(CV_CONST), _1 )
# 5175 "src/frontc/cparser.ml"
               : Cabs.spec_elem * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 1280 "src/frontc/cparser.mly"
                                        ( SpecCV(CV_VOLATILE), _1 )
# 5182 "src/frontc/cparser.ml"
               : Cabs.spec_elem * cabsloc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 1281 "src/frontc/cparser.mly"
                                        ( SpecCV(CV_RESTRICT), _1 )
# 5189 "src/frontc/cparser.ml"
               : Cabs.spec_elem * cabsloc))
; (fun __caml_parser_env ->
    Obj.repr(
# 1286 "src/frontc/cparser.mly"
                   ( [])
# 5195 "src/frontc/cparser.ml"
               : Cabs.attribute list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'attribute) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.attribute list) in
    Obj.repr(
# 1287 "src/frontc/cparser.mly"
                                 ( fst _1 :: _2 )
# 5203 "src/frontc/cparser.ml"
               : Cabs.attribute list))
; (fun __caml_parser_env ->
    Obj.repr(
# 1293 "src/frontc/cparser.mly"
                                        ( [] )
# 5209 "src/frontc/cparser.ml"
               : Cabs.attribute list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'attribute) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.attribute list) in
    Obj.repr(
# 1294 "src/frontc/cparser.mly"
                                        ( fst _1 :: _2 )
# 5217 "src/frontc/cparser.ml"
               : Cabs.attribute list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : string * cabsloc) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : Cabs.attribute list) in
    Obj.repr(
# 1296 "src/frontc/cparser.mly"
                                        ( ("__asm__", 
					   [CONSTANT(CONST_STRING (fst _3))]) :: _5 )
# 5228 "src/frontc/cparser.ml"
               : Cabs.attribute list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'paren_attr_list) in
    Obj.repr(
# 1303 "src/frontc/cparser.mly"
                                        ( ("__attribute__", _3), _1 )
# 5237 "src/frontc/cparser.ml"
               : 'attribute_nocv))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'paren_attr_list_ne) in
    Obj.repr(
# 1308 "src/frontc/cparser.mly"
                                        ( ("__declspec", _2), _1 )
# 5245 "src/frontc/cparser.ml"
               : 'attribute_nocv))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 1309 "src/frontc/cparser.mly"
                                        ( (fst _1, []), snd _1 )
# 5252 "src/frontc/cparser.ml"
               : 'attribute_nocv))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 1311 "src/frontc/cparser.mly"
                                        ( ("__thread",[]), _1 )
# 5259 "src/frontc/cparser.ml"
               : 'attribute_nocv))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'attribute_nocv) in
    Obj.repr(
# 1316 "src/frontc/cparser.mly"
                                        ( _1 )
# 5266 "src/frontc/cparser.ml"
               : 'attribute))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 1317 "src/frontc/cparser.mly"
                                        ( ("const", []), _1 )
# 5273 "src/frontc/cparser.ml"
               : 'attribute))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 1318 "src/frontc/cparser.mly"
                                        ( ("restrict",[]), _1 )
# 5280 "src/frontc/cparser.ml"
               : 'attribute))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 1319 "src/frontc/cparser.mly"
                                        ( ("volatile",[]), _1 )
# 5287 "src/frontc/cparser.ml"
               : 'attribute))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'paren_attr_list) in
    Obj.repr(
# 1327 "src/frontc/cparser.mly"
                                        ( ("__attribute__", _3) )
# 5296 "src/frontc/cparser.ml"
               : 'just_attribute))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'paren_attr_list_ne) in
    Obj.repr(
# 1328 "src/frontc/cparser.mly"
                                        ( ("__declspec", _2) )
# 5304 "src/frontc/cparser.ml"
               : 'just_attribute))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'just_attribute) in
    Obj.repr(
# 1334 "src/frontc/cparser.mly"
                                        ( [_1] )
# 5311 "src/frontc/cparser.ml"
               : 'just_attributes))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'just_attribute) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'just_attributes) in
    Obj.repr(
# 1335 "src/frontc/cparser.mly"
                                        ( _1 :: _2 )
# 5319 "src/frontc/cparser.ml"
               : 'just_attributes))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'attr) in
    Obj.repr(
# 1340 "src/frontc/cparser.mly"
                          ( PRAGMA (_2, _1) )
# 5327 "src/frontc/cparser.ml"
               : 'pragma))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : 'attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    Obj.repr(
# 1341 "src/frontc/cparser.mly"
                                   ( PRAGMA (_2, _1) )
# 5336 "src/frontc/cparser.ml"
               : 'pragma))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 1342 "src/frontc/cparser.mly"
                                        ( PRAGMA (VARIABLE (fst _1), 
                                                  snd _1) )
# 5344 "src/frontc/cparser.ml"
               : 'pragma))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 1349 "src/frontc/cparser.mly"
             ( VARIABLE (fst _1) )
# 5351 "src/frontc/cparser.ml"
               : 'primary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 1351 "src/frontc/cparser.mly"
                  ( VARIABLE (fst _1) )
# 5358 "src/frontc/cparser.ml"
               : 'primary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'attr) in
    Obj.repr(
# 1352 "src/frontc/cparser.mly"
                                        ( _2 )
# 5366 "src/frontc/cparser.ml"
               : 'primary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : string * Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 1353 "src/frontc/cparser.mly"
                                         ( CALL(VARIABLE (fst _1), [VARIABLE (fst _2)]) )
# 5374 "src/frontc/cparser.ml"
               : 'primary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 1354 "src/frontc/cparser.mly"
                                         ( CONSTANT(CONST_INT (fst _1)) )
# 5381 "src/frontc/cparser.ml"
               : 'primary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string * cabsloc) in
    Obj.repr(
# 1355 "src/frontc/cparser.mly"
                                         ( CONSTANT(CONST_STRING (fst _1)) )
# 5388 "src/frontc/cparser.ml"
               : 'primary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 1359 "src/frontc/cparser.mly"
                                         ( VARIABLE "aconst" )
# 5395 "src/frontc/cparser.ml"
               : 'primary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : string * Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 1361 "src/frontc/cparser.mly"
                                         ( VARIABLE (fst _1 ^ ":" ^ fst _3) )
# 5403 "src/frontc/cparser.ml"
               : 'primary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : string * Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 1365 "src/frontc/cparser.mly"
                                         ( VARIABLE (fst _1 ^ ":" ^ fst _3) )
# 5411 "src/frontc/cparser.ml"
               : 'primary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : string * Cabs.cabsloc) in
    Obj.repr(
# 1367 "src/frontc/cparser.mly"
                                         ( VARIABLE ("default:" ^ fst _3) )
# 5419 "src/frontc/cparser.ml"
               : 'primary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : Cabs.cabsloc) in
    Obj.repr(
# 1372 "src/frontc/cparser.mly"
                                         ( VARIABLE ("__noreturn__") )
# 5426 "src/frontc/cparser.ml"
               : 'primary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'primary_attr) in
    Obj.repr(
# 1376 "src/frontc/cparser.mly"
                                         ( _1 )
# 5433 "src/frontc/cparser.ml"
               : 'postfix_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : string * Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    Obj.repr(
# 1379 "src/frontc/cparser.mly"
                                     ( CALL(VARIABLE (fst _1), [VARIABLE ""]) )
# 5441 "src/frontc/cparser.ml"
               : 'postfix_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : string * Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'paren_attr_list_ne) in
    Obj.repr(
# 1380 "src/frontc/cparser.mly"
                                     ( CALL(VARIABLE (fst _1), _2) )
# 5449 "src/frontc/cparser.ml"
               : 'postfix_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'postfix_attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'id_or_typename) in
    Obj.repr(
# 1382 "src/frontc/cparser.mly"
                                         (MEMBEROFPTR (_1, _3))
# 5457 "src/frontc/cparser.ml"
               : 'postfix_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'postfix_attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'id_or_typename) in
    Obj.repr(
# 1383 "src/frontc/cparser.mly"
                                         (MEMBEROF (_1, _3))
# 5465 "src/frontc/cparser.ml"
               : 'postfix_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : 'postfix_attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'attr) in
    Obj.repr(
# 1384 "src/frontc/cparser.mly"
                                         (INDEX (_1, _3) )
# 5473 "src/frontc/cparser.ml"
               : 'postfix_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'postfix_attr) in
    Obj.repr(
# 1391 "src/frontc/cparser.mly"
                                         ( _1 )
# 5480 "src/frontc/cparser.ml"
               : 'unary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'unary_expression) in
    Obj.repr(
# 1392 "src/frontc/cparser.mly"
                                         (EXPR_SIZEOF (fst _2) )
# 5488 "src/frontc/cparser.ml"
               : 'unary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.spec_elem list * Cabs.decl_type) in
    Obj.repr(
# 1394 "src/frontc/cparser.mly"
                           (let b, d = _3 in TYPE_SIZEOF (b, d))
# 5497 "src/frontc/cparser.ml"
               : 'unary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'unary_expression) in
    Obj.repr(
# 1396 "src/frontc/cparser.mly"
                                         (EXPR_ALIGNOF (fst _2) )
# 5505 "src/frontc/cparser.ml"
               : 'unary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : Cabs.spec_elem list * Cabs.decl_type) in
    Obj.repr(
# 1397 "src/frontc/cparser.mly"
                                         (let b, d = _3 in TYPE_ALIGNOF (b, d))
# 5514 "src/frontc/cparser.ml"
               : 'unary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'cast_attr) in
    Obj.repr(
# 1398 "src/frontc/cparser.mly"
                                        (UNARY (PLUS, _2))
# 5522 "src/frontc/cparser.ml"
               : 'unary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'cast_attr) in
    Obj.repr(
# 1399 "src/frontc/cparser.mly"
                                        (UNARY (MINUS, _2))
# 5530 "src/frontc/cparser.ml"
               : 'unary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'cast_attr) in
    Obj.repr(
# 1400 "src/frontc/cparser.mly"
                            (UNARY (MEMOF, _2))
# 5538 "src/frontc/cparser.ml"
               : 'unary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'cast_attr) in
    Obj.repr(
# 1402 "src/frontc/cparser.mly"
                                 (UNARY (ADDROF, _2))
# 5546 "src/frontc/cparser.ml"
               : 'unary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'cast_attr) in
    Obj.repr(
# 1403 "src/frontc/cparser.mly"
                                 (UNARY (NOT, _2))
# 5554 "src/frontc/cparser.ml"
               : 'unary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'cast_attr) in
    Obj.repr(
# 1404 "src/frontc/cparser.mly"
                                        (UNARY (BNOT, _2))
# 5562 "src/frontc/cparser.ml"
               : 'unary_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'unary_attr) in
    Obj.repr(
# 1408 "src/frontc/cparser.mly"
                                         ( _1 )
# 5569 "src/frontc/cparser.ml"
               : 'cast_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'cast_attr) in
    Obj.repr(
# 1412 "src/frontc/cparser.mly"
                                        ( _1 )
# 5576 "src/frontc/cparser.ml"
               : 'multiplicative_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'multiplicative_attr) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'cast_attr) in
    Obj.repr(
# 1413 "src/frontc/cparser.mly"
                                        (BINARY(MUL ,_1 , _3))
# 5585 "src/frontc/cparser.ml"
               : 'multiplicative_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'multiplicative_attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'cast_attr) in
    Obj.repr(
# 1414 "src/frontc/cparser.mly"
                                          (BINARY(DIV ,_1 , _3))
# 5593 "src/frontc/cparser.ml"
               : 'multiplicative_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'multiplicative_attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'cast_attr) in
    Obj.repr(
# 1415 "src/frontc/cparser.mly"
                                          (BINARY(MOD ,_1 , _3))
# 5601 "src/frontc/cparser.ml"
               : 'multiplicative_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'multiplicative_attr) in
    Obj.repr(
# 1420 "src/frontc/cparser.mly"
                                        ( _1 )
# 5608 "src/frontc/cparser.ml"
               : 'additive_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'additive_attr) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'multiplicative_attr) in
    Obj.repr(
# 1421 "src/frontc/cparser.mly"
                                            (BINARY(ADD ,_1 , _3))
# 5617 "src/frontc/cparser.ml"
               : 'additive_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'additive_attr) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'multiplicative_attr) in
    Obj.repr(
# 1422 "src/frontc/cparser.mly"
                                            (BINARY(SUB ,_1 , _3))
# 5626 "src/frontc/cparser.ml"
               : 'additive_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'additive_attr) in
    Obj.repr(
# 1426 "src/frontc/cparser.mly"
                                        ( _1 )
# 5633 "src/frontc/cparser.ml"
               : 'shift_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'shift_attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'additive_attr) in
    Obj.repr(
# 1427 "src/frontc/cparser.mly"
                                     (BINARY(SHL ,_1 , _3))
# 5641 "src/frontc/cparser.ml"
               : 'shift_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'shift_attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'additive_attr) in
    Obj.repr(
# 1428 "src/frontc/cparser.mly"
                                     (BINARY(SHR ,_1 , _3))
# 5649 "src/frontc/cparser.ml"
               : 'shift_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'shift_attr) in
    Obj.repr(
# 1432 "src/frontc/cparser.mly"
                                        ( _1 )
# 5656 "src/frontc/cparser.ml"
               : 'relational_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'relational_attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'shift_attr) in
    Obj.repr(
# 1433 "src/frontc/cparser.mly"
                                   (BINARY(LT ,_1 , _3))
# 5664 "src/frontc/cparser.ml"
               : 'relational_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'relational_attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'shift_attr) in
    Obj.repr(
# 1434 "src/frontc/cparser.mly"
                                   (BINARY(GT ,_1 , _3))
# 5672 "src/frontc/cparser.ml"
               : 'relational_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'relational_attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'shift_attr) in
    Obj.repr(
# 1435 "src/frontc/cparser.mly"
                                      (BINARY(LE ,_1 , _3))
# 5680 "src/frontc/cparser.ml"
               : 'relational_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'relational_attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'shift_attr) in
    Obj.repr(
# 1436 "src/frontc/cparser.mly"
                                      (BINARY(GE ,_1 , _3))
# 5688 "src/frontc/cparser.ml"
               : 'relational_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'relational_attr) in
    Obj.repr(
# 1440 "src/frontc/cparser.mly"
                                        ( _1 )
# 5695 "src/frontc/cparser.ml"
               : 'equality_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'equality_attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'relational_attr) in
    Obj.repr(
# 1441 "src/frontc/cparser.mly"
                                            (BINARY(EQ ,_1 , _3))
# 5703 "src/frontc/cparser.ml"
               : 'equality_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'equality_attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'relational_attr) in
    Obj.repr(
# 1442 "src/frontc/cparser.mly"
                                            (BINARY(NE ,_1 , _3))
# 5711 "src/frontc/cparser.ml"
               : 'equality_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'equality_attr) in
    Obj.repr(
# 1447 "src/frontc/cparser.mly"
                                        ( _1 )
# 5718 "src/frontc/cparser.ml"
               : 'bitwise_and_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'bitwise_and_attr) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'equality_attr) in
    Obj.repr(
# 1448 "src/frontc/cparser.mly"
                                       (BINARY(BAND ,_1 , _3))
# 5727 "src/frontc/cparser.ml"
               : 'bitwise_and_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'bitwise_and_attr) in
    Obj.repr(
# 1452 "src/frontc/cparser.mly"
                                           ( _1 )
# 5734 "src/frontc/cparser.ml"
               : 'bitwise_xor_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'bitwise_xor_attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'bitwise_and_attr) in
    Obj.repr(
# 1453 "src/frontc/cparser.mly"
                                           (BINARY(XOR ,_1 , _3))
# 5742 "src/frontc/cparser.ml"
               : 'bitwise_xor_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'bitwise_xor_attr) in
    Obj.repr(
# 1457 "src/frontc/cparser.mly"
                                          ( _1 )
# 5749 "src/frontc/cparser.ml"
               : 'bitwise_or_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'bitwise_or_attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'bitwise_xor_attr) in
    Obj.repr(
# 1458 "src/frontc/cparser.mly"
                                          (BINARY(BOR ,_1 , _3))
# 5757 "src/frontc/cparser.ml"
               : 'bitwise_or_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'bitwise_or_attr) in
    Obj.repr(
# 1462 "src/frontc/cparser.mly"
                                                ( _1 )
# 5764 "src/frontc/cparser.ml"
               : 'logical_and_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'logical_and_attr) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'bitwise_or_attr) in
    Obj.repr(
# 1463 "src/frontc/cparser.mly"
                                             (BINARY(AND ,_1 , _3))
# 5773 "src/frontc/cparser.ml"
               : 'logical_and_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'logical_and_attr) in
    Obj.repr(
# 1467 "src/frontc/cparser.mly"
                                               ( _1 )
# 5780 "src/frontc/cparser.ml"
               : 'logical_or_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'logical_or_attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'logical_and_attr) in
    Obj.repr(
# 1468 "src/frontc/cparser.mly"
                                               (BINARY(OR ,_1 , _3))
# 5788 "src/frontc/cparser.ml"
               : 'logical_or_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'logical_or_attr) in
    Obj.repr(
# 1472 "src/frontc/cparser.mly"
                                           ( _1 )
# 5795 "src/frontc/cparser.ml"
               : 'conditional_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : 'logical_or_attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : 'conditional_attr) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : 'conditional_attr) in
    Obj.repr(
# 1475 "src/frontc/cparser.mly"
                                          ( QUESTION(_1, _3, _5) )
# 5804 "src/frontc/cparser.ml"
               : 'conditional_attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'conditional_attr) in
    Obj.repr(
# 1478 "src/frontc/cparser.mly"
                                          ( _1 )
# 5811 "src/frontc/cparser.ml"
               : 'attr))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'attr) in
    Obj.repr(
# 1482 "src/frontc/cparser.mly"
                                         ( [_1] )
# 5818 "src/frontc/cparser.ml"
               : 'attr_list_ne))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'attr) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'attr_list_ne) in
    Obj.repr(
# 1483 "src/frontc/cparser.mly"
                                         ( _1 :: _3 )
# 5826 "src/frontc/cparser.ml"
               : 'attr_list_ne))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'attr_list_ne) in
    Obj.repr(
# 1484 "src/frontc/cparser.mly"
                                         ( _3 )
# 5833 "src/frontc/cparser.ml"
               : 'attr_list_ne))
; (fun __caml_parser_env ->
    Obj.repr(
# 1487 "src/frontc/cparser.mly"
                                         ( [] )
# 5839 "src/frontc/cparser.ml"
               : 'attr_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'attr_list_ne) in
    Obj.repr(
# 1488 "src/frontc/cparser.mly"
                                         ( _1 )
# 5846 "src/frontc/cparser.ml"
               : 'attr_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'attr_list_ne) in
    Obj.repr(
# 1491 "src/frontc/cparser.mly"
                                         ( _2 )
# 5854 "src/frontc/cparser.ml"
               : 'paren_attr_list_ne))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    Obj.repr(
# 1492 "src/frontc/cparser.mly"
                                         ( [] )
# 5861 "src/frontc/cparser.ml"
               : 'paren_attr_list_ne))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'attr_list) in
    Obj.repr(
# 1495 "src/frontc/cparser.mly"
                                         ( _2 )
# 5869 "src/frontc/cparser.ml"
               : 'paren_attr_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    Obj.repr(
# 1496 "src/frontc/cparser.mly"
                                         ( [] )
# 5876 "src/frontc/cparser.ml"
               : 'paren_attr_list))
; (fun __caml_parser_env ->
    Obj.repr(
# 1500 "src/frontc/cparser.mly"
                                        ( [] )
# 5882 "src/frontc/cparser.ml"
               : Cabs.attribute list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.attribute list) in
    Obj.repr(
# 1501 "src/frontc/cparser.mly"
                                        ( ("volatile", []) :: _2 )
# 5890 "src/frontc/cparser.ml"
               : Cabs.attribute list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : Cabs.cabsloc) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : Cabs.attribute list) in
    Obj.repr(
# 1502 "src/frontc/cparser.mly"
                                        ( ("const", []) :: _2 )
# 5898 "src/frontc/cparser.ml"
               : Cabs.attribute list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'one_string_constant) in
    Obj.repr(
# 1505 "src/frontc/cparser.mly"
                                                 ( [_1] )
# 5905 "src/frontc/cparser.ml"
               : 'asmtemplate))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'one_string_constant) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'asmtemplate) in
    Obj.repr(
# 1506 "src/frontc/cparser.mly"
                                                 ( _1 :: _2 )
# 5913 "src/frontc/cparser.ml"
               : 'asmtemplate))
; (fun __caml_parser_env ->
    Obj.repr(
# 1509 "src/frontc/cparser.mly"
                        ( None )
# 5919 "src/frontc/cparser.ml"
               : 'asmoutputs))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'asmoperands) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'asminputs) in
    Obj.repr(
# 1511 "src/frontc/cparser.mly"
                        ( let (ins, clobs) = _3 in
                          Some {aoutputs = _2; ainputs = ins; aclobbers = clobs} )
# 5928 "src/frontc/cparser.ml"
               : 'asmoutputs))
; (fun __caml_parser_env ->
    Obj.repr(
# 1515 "src/frontc/cparser.mly"
                                        ( [] )
# 5934 "src/frontc/cparser.ml"
               : 'asmoperands))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'asmoperandsne) in
    Obj.repr(
# 1516 "src/frontc/cparser.mly"
                                        ( List.rev _1 )
# 5941 "src/frontc/cparser.ml"
               : 'asmoperands))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'asmoperand) in
    Obj.repr(
# 1519 "src/frontc/cparser.mly"
                                        ( [_1] )
# 5948 "src/frontc/cparser.ml"
               : 'asmoperandsne))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'asmoperandsne) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'asmoperand) in
    Obj.repr(
# 1520 "src/frontc/cparser.mly"
                                        ( _3 :: _1 )
# 5956 "src/frontc/cparser.ml"
               : 'asmoperandsne))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : 'asmopname) in
    let _2 = (Parsing.peek_val __caml_parser_env 3 : string * cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : Cabs.expression * cabsloc) in
    Obj.repr(
# 1523 "src/frontc/cparser.mly"
                                                           ( (_1, fst _2, fst _4) )
# 5966 "src/frontc/cparser.ml"
               : 'asmoperand))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : 'asmopname) in
    let _2 = (Parsing.peek_val __caml_parser_env 3 : string * cabsloc) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : Cabs.cabsloc) in
    Obj.repr(
# 1524 "src/frontc/cparser.mly"
                                                           ( (_1, fst _2, NOTHING ) )
# 5975 "src/frontc/cparser.ml"
               : 'asmoperand))
; (fun __caml_parser_env ->
    Obj.repr(
# 1527 "src/frontc/cparser.mly"
                             ( ([], []) )
# 5981 "src/frontc/cparser.ml"
               : 'asminputs))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'asmoperands) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'asmclobber) in
    Obj.repr(
# 1529 "src/frontc/cparser.mly"
                        ( (_2, _3) )
# 5989 "src/frontc/cparser.ml"
               : 'asminputs))
; (fun __caml_parser_env ->
    Obj.repr(
# 1532 "src/frontc/cparser.mly"
                                        ( None )
# 5995 "src/frontc/cparser.ml"
               : 'asmopname))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : string * Cabs.cabsloc) in
    Obj.repr(
# 1533 "src/frontc/cparser.mly"
                                        ( Some (fst _2) )
# 6002 "src/frontc/cparser.ml"
               : 'asmopname))
; (fun __caml_parser_env ->
    Obj.repr(
# 1537 "src/frontc/cparser.mly"
                                        ( [] )
# 6008 "src/frontc/cparser.ml"
               : 'asmclobber))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'asmcloberlst_ne) in
    Obj.repr(
# 1538 "src/frontc/cparser.mly"
                                        ( _2 )
# 6015 "src/frontc/cparser.ml"
               : 'asmclobber))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'one_string_constant) in
    Obj.repr(
# 1541 "src/frontc/cparser.mly"
                                                 ( [_1] )
# 6022 "src/frontc/cparser.ml"
               : 'asmcloberlst_ne))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'one_string_constant) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'asmcloberlst_ne) in
    Obj.repr(
# 1542 "src/frontc/cparser.mly"
                                                 ( _1 :: _3 )
# 6030 "src/frontc/cparser.ml"
               : 'asmcloberlst_ne))
(* Entry interpret *)
; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0)))
(* Entry file *)
; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0)))
|]
let yytables =
  { Parsing.actions=yyact;
    Parsing.transl_const=yytransl_const;
    Parsing.transl_block=yytransl_block;
    Parsing.lhs=yylhs;
    Parsing.len=yylen;
    Parsing.defred=yydefred;
    Parsing.dgoto=yydgoto;
    Parsing.sindex=yysindex;
    Parsing.rindex=yyrindex;
    Parsing.gindex=yygindex;
    Parsing.tablesize=yytablesize;
    Parsing.table=yytable;
    Parsing.check=yycheck;
    Parsing.error_function=parse_error;
    Parsing.names_const=yynames_const;
    Parsing.names_block=yynames_block }
let interpret (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) =
   (Parsing.yyparse yytables 1 lexfun lexbuf : Cabs.definition list)
let file (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) =
   (Parsing.yyparse yytables 2 lexfun lexbuf : Cabs.definition list)
;;
# 1546 "src/frontc/cparser.mly"



# 6063 "src/frontc/cparser.ml"
